DomainPlug-insDocumentation
DomainPluginClass.h
Go to the documentation of this file.
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_ */
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines