00001 #ifndef _EPP_H
00002 #define _EPP_H
00003 #include "xmlpacket.h"
00004 #include <stlrt/atypes.h>
00005 #include <stlrt/log.hpp>
00006
00007 #include "epptype.h"
00008 #include "epperrno.h"
00009
00010 #include <set>
00011 #include <map>
00012
00013 #include <stlrt/compat/time.hpp>
00014
00015 #include <epplibconfig.h>
00016
00017
00018 #define XSI_NS "http://www.w3.org/2001/XMLSchema-instance"
00019
00020
00021
00022 #define EPP_AVAILABLE_DOMAIN 1
00023 #define EPP_N_AVAILABLE_DOMAIN 0
00024 #define EPP_AVAILABLE_HOST 1
00025 #define EPP_N_AVAILABLE_HOST 0
00026 #define EPP_AVAILABLE_CONTACT 1
00027 #define EPP_N_AVAILABLE_CONTACT 0
00028 #define EPP_NS_EPP_10 "urn:ietf:params:xml:ns:epp-1.0"
00029 #define EPP_NS_DOMAIN_10 "urn:ietf:params:xml:ns:domain-1.0"
00030 #define EPP_NS_CONTACT_10 "urn:ietf:params:xml:ns:contact-1.0"
00031 #define EPP_NS_HOST_10 "urn:ietf:params:xml:ns:host-1.0"
00032
00033 #define EPP_SCHEMA_LOCATION_EPP_10 "urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd"
00034 #define EPP_SCHEMA_LOCATION_CONTACT_10 "urn:ietf:params:xml:ns:contact-1.0 contact-1.0.xsd"
00035 #define EPP_SCHEMA_LOCATION_DOMAIN_10 "urn:ietf:params:xml:ns:domain-1.0 domain-1.0.xsd"
00036 #define EPP_SCHEMA_LOCATION_HOST_10 "urn:ietf:params:xml:ns:host-1.0 host-1.0.xsd"
00037
00038
00039 using namespace std;
00049 class EPPLIB_DECL EPPXML {
00050 public:
00058 EPPXML( STLRT::Log::Entry& _logger): logger(_logger) {logger.info() << "EPPXML created" << endl;};
00059
00060
00061 virtual ~EPPXML(void);
00062 virtual Str __Generate_clTRID(void);
00063 virtual void __prepare(void);
00064
00069 virtual Str getXML(void);
00070 virtual Str generateXML(void);
00071
00076 virtual Str getEPP_NS_EPP_10(void);
00077
00082 virtual Str getEPP_NS_DOMAIN_10(void);
00083
00088 virtual Str getEPP_NS_CONTACT_10(void);
00089 virtual Str getEPP_NS_HOST_10(void);
00090
00091 virtual Str getEPP_SCHEMA_LOCATION_EPP_10(void);
00092 virtual Str getEPP_SCHEMA_LOCATION_DOMAIN_10(void);
00093 virtual Str getEPP_SCHEMA_LOCATION_CONTACT_10(void);
00094 virtual Str getEPP_SCHEMA_LOCATION_HOST_10(void);
00095
00096 virtual EPPResponse getGeneralResult(Str answer);
00097
00102 virtual void FormHelo(void);
00103
00109 virtual void FormHelo(map<Str, Str> extension);
00110
00117 virtual void CustomizeFormHelo(map<Str, Str> extension);
00118
00124 virtual void ParseHelo(Str answer);
00125
00132 virtual void FormLogin(Str Login, Str Pwd);
00133
00141 virtual void FormLogin(Str Login, Str Pwd, map<Str, Str> extension);
00142
00149 virtual void CustomizeFormLogin(map<Str, Str> extension);
00150
00155 virtual void FormLogout(void);
00156
00162 virtual void FormLogout(map<Str, Str> extension);
00163
00168 virtual void CustomizeFormLogout(map<Str, Str> extension);
00169
00175 virtual void FormCheckContact(list<Str> input);
00176
00183 virtual void FormCheckContact(list<Str>, map<Str, Str> extension);
00184
00189 virtual void CustomizeFormCheckContact(map<Str, Str> extension);
00190
00199 virtual map <Str, int> ParseCheckContact(Str answer);
00200
00208 virtual void FormCreateContactGeneral (EPPContact CI, map<Str, Str> ex, Str type);
00209
00214 virtual Str ParseCreateContact(Str answer);
00215
00221 virtual void FormCreateContactLoc(EPPContact CI);
00222
00229 virtual void FormCreateContactLoc(EPPContact CI, map<Str, Str> extension);
00230
00235 virtual void CustomizeFormCreateContactLoc(map<Str, Str> extension);
00236
00241 virtual Str ParseCreateContactLoc(Str answer);
00242
00248 virtual void FormCreateContactInt(EPPContact CI);
00249
00256 virtual void FormCreateContactInt(EPPContact CI, map<Str, Str> extension);
00257
00262 virtual void CustomizeFormCreateContactInt(map<Str, Str> extension);
00263
00270 virtual void FormInfoContact (Str ID, Str Pwd);
00271
00278 virtual void FormInfoContact (Str ID, Str Pwd, map<Str, Str> ex);
00279
00284 virtual void CustomizeFormInfoContact (map<Str, Str> ex);
00285
00291 virtual void FormUpdateContactLoc(EPPContact CI);
00292
00298 virtual void FormUpdateContactLoc(EPPContact CI, map<Str, Str> extension);
00299
00304 virtual void CustomizeFormUpdateContactLoc(map<Str, Str> extension);
00305
00311 virtual void FormCheckDomain(list<Str> input );
00312
00319 virtual void FormCheckDomain(list<Str> input, map<Str, Str> extension);
00320
00325 virtual void CustomizeFormCheckDomain(map<Str, Str> extension);
00326
00336 virtual map <Str, int> ParseCheckDomain(Str answer);
00337
00347 virtual void FormCreateDomain(Str DomainName, Int Period, map<Str, Str> contacts, Str Password, list<EPPNS> NSes);
00348
00359 virtual void FormCreateDomain(Str DomainName, Int Period, map<Str, Str> contacts, Str Password, list<EPPNS> NSes,map<Str, Str> extension );
00360
00365 virtual void CustomizeFormCreateDomain(map<Str, Str> extension);
00366
00371 virtual int ParseCreateDomain(Str answer);
00372
00378 virtual void FormInfoDomain(Str Domain);
00379
00386 virtual void FormInfoDomain(Str Domain, map<Str, Str> extension);
00387
00392 virtual void CustomizeFormInfoDomain(map<Str, Str> extension);
00393
00400 virtual int ParseInfoDomain(Str answer);
00401
00411 virtual void FormUpdateDomain (Str domain, list<EPPNS> old_nses, list<EPPNS> new_nses, map<Str,Str> old_contacts, map<Str,Str> new_contacts);
00412
00423 virtual void FormUpdateDomain (Str domain, list<EPPNS> old_nses, list<EPPNS> new_nses, map<Str,Str> old_contacts, map<Str,Str> new_contacts, map<Str, Str> extension);
00428 virtual void CustomizeFormUpdateDomain(map<Str,Str> extension);
00429
00437 virtual void FormRenewDomain(Str Domain, Str ExpDate, Int Period);
00438
00447 virtual void FormRenewDomain(Str Domain, Str ExpDate, Int Period, map<Str,Str> extension);
00448
00453 virtual void CustomizeFormRenewDomain(map<Str,Str> extension);
00454
00461 virtual void FormTransferDomain(Str Domain, Str Password);
00462
00470 virtual void FormTransferDomain(Str Domain, Str Password, map<Str,Str> extension);
00471
00476 virtual void CustomizeFormTransferDomain(map<Str,Str> extension);
00477
00483 virtual void FormDeleteDomain(Str Domain);
00484
00491 virtual void FormDeleteDomain(Str Domain, map<Str,Str> extension);
00492
00497 virtual void CustomizeFormDeleteDomain(map<Str,Str> extension);
00498
00504 virtual void FormCheckHost(list<Str> input );
00505
00512 virtual void FormCheckHost(list<Str> input , map<Str, Str> extension);
00513
00518 virtual void CustomizeFormCheckHost(map<Str, Str> extension);
00519
00529 virtual map <Str, int> ParseCheckHost(Str answer);
00530
00537 virtual void FormCreateHost(Str hostName, list<Str> ip);
00538
00546 virtual void FormCreateHost(Str hostName, list<Str> ip, map<Str, Str> extension);
00547
00552 virtual void CustomizeFormCreateHost(map<Str, Str> extension);
00553
00560 virtual int ParseCreateHost(Str answer);
00561
00562 Str svID;
00563 Str svDate;
00564 Str proto;
00565 Str lang;
00566 list<Str> objURI;
00567 list<Str> extURI;
00568 XMLPacket packet;
00569 STLRT::Log::Entry& logger;
00570 };
00571
00572 #endif