DomainPlug-insDocumentation
|
00001 #ifndef DOMAINPLUGINCLASS_H_ 00002 #define DOMAINPLUGINCLASS_H_ 00003 00004 #include "DomainPluginTypes.h" 00005 #include <MiddleWare/rresult.h> 00006 #include "SerializerDPT.h" 00007 00008 #include <Comm/exc_comm.h> 00009 #include <Comm/atracer.h> 00010 00011 #define DTEXC_NO_SUCH_METHOD Exc(COMM_ERR_NO_METHOD, "No such method"); 00012 00027 template <class T > class DTPlugin { 00028 protected: 00029 StrStream Logger; 00030 Int registrarID; 00031 Int collectorID; 00032 T *ths; 00033 public: 00034 DTPlugin() {}; 00035 virtual void init(Int rID, Int cID, T* self) 00036 {registrarID = rID; collectorID = cID, ths = self;}; 00037 00038 00039 Str getLog() { return Logger; }; 00040 00042 00050 virtual const DTOutCheckAvailability 00051 checkAvailability(const DTInCheckAvailability & input) { throw DTEXC_NO_SUCH_METHOD }; 00052 00054 00064 virtual const DTOutCheckTransfer 00065 checkTransfer(const DTInCheckTransfer & input) { throw DTEXC_NO_SUCH_METHOD }; 00066 00068 00074 virtual const DTOutRegisterDomain 00075 registerDomain(const DTInRegisterDomain & input) { throw DTEXC_NO_SUCH_METHOD }; 00076 00078 00084 virtual const DTOutTransferDomain 00085 transferDomain(const DTInTransferDomain & input) { throw DTEXC_NO_SUCH_METHOD }; 00086 00088 00094 virtual const DTOutRenewDomain 00095 renewDomain(const DTInRenewDomain & input) { throw DTEXC_NO_SUCH_METHOD }; 00096 00098 00103 virtual const DTOutTerminateDomain 00104 terminateDomain(const DTInTerminateDomain & input) { throw DTEXC_NO_SUCH_METHOD }; 00105 00107 00113 virtual const DTOutGetDomainStatus 00114 getDomainStatus(const DTInGetDomainStatus & input) { throw DTEXC_NO_SUCH_METHOD }; 00115 00117 00125 virtual const DTOutRegisterContacts 00126 registerContacts(const DTInRegisterContacts & input) { throw DTEXC_NO_SUCH_METHOD }; 00127 00128 00130 00139 virtual const DTOutGetContactsStatus 00140 getContactsStatus(const DTInGetContactsStatus & input) { throw DTEXC_NO_SUCH_METHOD }; 00141 00143 00150 virtual const DTOutRegisterNameServers 00151 registerNameServers(const DTInRegisterNameServers & input) { throw DTEXC_NO_SUCH_METHOD }; 00152 00153 00155 00162 virtual const DTOutGetNameServersStatus 00163 getNameServersStatus(const DTInGetNameServersStatus &) { throw DTEXC_NO_SUCH_METHOD }; 00164 00166 00176 virtual const DTOutGetDomainDetails 00177 getDomainDetails(const DTInGetDomainDetails & input) { throw DTEXC_NO_SUCH_METHOD }; 00178 00179 00181 00185 virtual const DTOutUpdateDomainNameServers 00186 updateDomainNameServers(const DTInUpdateDomainNameServers & input) { throw DTEXC_NO_SUCH_METHOD }; 00187 00189 00193 virtual const DTOutUpdateDomainContacts 00194 updateDomainContacts(const DTInUpdateDomainContacts & input) { throw DTEXC_NO_SUCH_METHOD }; 00195 00197 00201 virtual const DTOutGetDomainNameServersStatus 00202 getDomainNameServersStatus(const DTInGetDomainNameServersStatus & input) { throw DTEXC_NO_SUCH_METHOD }; 00203 00205 00209 virtual const DTOutGetDomainContactsStatus 00210 getDomainContactsStatus(const DTInGetDomainContactsStatus & input) { throw DTEXC_NO_SUCH_METHOD }; 00211 00213 00221 virtual const DTOutValidateExtData 00222 validateExtData(const DTInValidateExtData & input) { throw DTEXC_NO_SUCH_METHOD }; 00223 00225 00231 virtual const DTOutSetLock 00232 setLock(const DTInSetLock & input) { throw DTEXC_NO_SUCH_METHOD }; 00233 00235 00240 virtual const DTOutSetWhoisPrivacy 00241 setWhoisPrivacy(const DTInSetWhoisPrivacy & input) { throw DTEXC_NO_SUCH_METHOD }; 00242 00244 00251 virtual const DTOutCallback 00252 processCallback(const DTInCallback & input) { throw DTEXC_NO_SUCH_METHOD }; 00253 00255 00262 virtual const DTOutGetDomainNameServers 00263 getDomainNameServers(const DTInGetDomainNameServers & input) { throw DTEXC_NO_SUCH_METHOD }; 00264 00271 const DTRegisteredDomainInfo getRegisteredDomainInfo ( const Str domainName ) const { 00272 TRObject ro("DOMAINGATE_Object", "DOMAINGATE_Container"); 00273 ro["GetRegisteredDomainInfo"] << domainName; 00274 RemoteResult rr(ro); 00275 ItemResult * ir = (ItemResult*)( rr.GetMethodResult() ); 00276 Str data; ir->istream() >> data; 00277 00278 DTRegisteredDomainInfoSerializer ser; 00279 DTRegisteredDomainInfo di= ser.unserialize( data ); 00280 00281 return di; 00282 } 00283 00284 virtual ~DTPlugin() {}; 00285 }; 00286 00287 namespace PluginMsg { 00288 static const char* const RegistrarIsNotConfigured = ("Registrar is not configured. Please configure. "); 00289 } 00290 00291 #endif /* DOMAINPLUGINCLASS_H_ */