00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef OMNIEVENTS__SERVANT_H
00025 #define OMNIEVENTS__SERVANT_H
00026
00027 #ifdef HAVE_CONFIG_H
00028 # include "config.h"
00029 #endif
00030
00031 #ifdef HAVE_OMNIORB3
00032 # include <omniORB3/CORBA.h>
00033 #endif
00034
00035 #ifdef HAVE_OMNIORB4
00036 # include <omniORB4/CORBA.h>
00037 #endif
00038
00039
00040 namespace OmniEvents {
00041
00048 CORBA::Object_ptr
00049 createReference(PortableServer::POA_ptr poa, const char* repositoryId);
00050
00060 template<class T>
00061 typename T::_ptr_type
00062 createNarrowedReference(PortableServer::POA_ptr poa, const char* repositoryId)
00063 {
00064 CORBA::Object_var obj =createReference(poa,repositoryId);
00065 #ifdef HAVE_OMNIORB4
00066 return T::_unchecked_narrow(obj.in());
00067 #else
00068 return T::_narrow(obj.in());
00069 #endif
00070 }
00071
00073 char* newUniqueId();
00074
00075
00079 class Servant : public virtual PortableServer::ServantBase
00080 {
00081 public:
00082 virtual PortableServer::POA_ptr _default_POA();
00083 virtual ~Servant();
00084
00085 protected:
00086 Servant(PortableServer::POA_ptr poa);
00087
00089 void activateObjectWithId(const char* oidStr);
00091 void deactivateObject();
00092
00093 PortableServer::POA_var _poa;
00094
00095 private:
00097 Servant();
00098 };
00099
00100 };
00101
00102 #endif // OMNIEVENTS__SERVANT_H