00001 // -*- C++ -*- 00019 #ifndef DOIL_IORB_H 00020 #define DOIL_IORB_H 00021 00022 #include <coil/Properties.h> 00023 #include <doil/doil.h> 00024 #include <doil/ServantFactory.h> 00025 #include <doil/ImplBase.h> 00026 00027 namespace doil 00028 { 00029 00044 class IORB 00045 { 00046 public: 00061 virtual ~IORB() throw() {}; 00062 00076 virtual const char* name() throw() = 0; 00077 00091 virtual void shutdown() throw() = 0; 00092 00116 virtual ReturnCode_t registerFactory(const char* id, 00117 ServantNewFunc new_func, 00118 ServantDeleteFunc delete_func) 00119 throw() = 0; 00120 00150 virtual ReturnCode_t activateObject(ImplBase* impl) 00151 throw() = 0; 00152 00183 virtual ReturnCode_t activateObject(ImplBase* impl, 00184 ServantBase* servant) 00185 throw() = 0; 00186 00213 virtual ReturnCode_t deactivateObject(ImplBase* impl) 00214 throw() = 0; 00215 00242 virtual ReturnCode_t deactivateObject(const char* name) 00243 throw() = 0; 00244 00271 virtual doil::ImplBase* getImpl(const char* name) 00272 throw() = 0; 00273 00300 virtual doil::ImplBase* toImpl(doil::ServantBase* servant) 00301 throw() = 0; 00302 00329 virtual doil::ServantBase* getServant(const char* name) 00330 throw() = 0; 00331 00358 virtual doil::ServantBase* toServant(doil::ImplBase* impl) 00359 throw() = 0; 00360 00361 }; 00362 }; // namespace doil 00363 #endif // DOIL_IORB_H