1 #ifndef CARMA_CORBA_SERVER_H
2 #define CARMA_CORBA_SERVER_H
4 #include "carma/util/Program.h"
32 explicit Server(
int argc,
char * argv[],
int rrtt = 60 );
44 template<
template<
typename >
class T,
typename S >
46 const ::std::string & nameserverName );
53 template<
template<
typename >
class T ,
typename S >
55 typename T< S >::_stub_ptr_type & corbaClientPtr );
66 template<
typename S,
typename N >
68 const ::std::string & channelName,
69 const ::std::string & proxyName );
80 void run(
bool inSeparateThread =
false );
95 friend Client & carma::util::ProgramBase::getCorbaClient();
103 struct PrivateImplementation;
104 std::auto_ptr< PrivateImplementation > privateImpl_;
106 struct PrivateInline;
107 std::auto_ptr< PrivateInline > privateInl_;
113 #include "carma/corba/Server.inl"
virtual ~Server()
Destructor.
void work()
Service remote requests if pending (non blocking).
bool terminated() const
Check if server has terminated, including via the IMR.
void run(bool inSeparateThread=false)
Service remote requests continuously (blocks).
Server(int argc, char *argv[], int rrtt=60)
Initialize CORBA server runtime.
Class to encapsulate CORBA client functionality in CARMA.
void addServant(S &servant, const ::std::string &nameserverName)
Add servant S, incarnate with IDL generated tie T and publish.
void stop()
Stop serving remote requests permanently.
Class for creating, managing and serving requests to CORBA servants.
void addNotificationServantFunctor(S &servant, const ::std::string &channelName, const ::std::string &proxyName)
Add servant to process IDL defined notifications on given channel.