00001 #ifndef _ACS_DAEMON_IMPL_H_
00002 #define _ACS_DAEMON_IMPL_H_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef __cplusplus
00032 #error This is a C++ include file and cannot be used from plain C
00033 #endif
00034
00035 #include "acsdaemonS.h"
00036 #include "logging.h"
00037
00038 class ACSDaemonImpl : public POA_acsdaemon::Daemon {
00039
00040 public:
00041
00045 ACSDaemonImpl(LoggingProxy &logProxy);
00046
00050 virtual ~ACSDaemonImpl();
00051
00055 bool
00056 isInitialized() { return m_isInitialized; }
00057
00061 int
00062 startup (int argc, char *argv[]);
00063
00068 int
00069 run ();
00070
00074 void shutdown ();
00075
00079 const char* getIOR() const { return m_ior.in(); };
00080
00081
00082
00083 virtual void start_container (
00084 const char * container_type,
00085 const char * container_name,
00086 ::CORBA::Short instance_number,
00087 const char * additional_command_line
00088 )
00089 ACE_THROW_SPEC ((
00090 CORBA::SystemException,
00091 ::acsdaemonErrType::FailedToStartContainerEx,
00092 ::ACSErrTypeCommon::BadParameterEx
00093 ));
00094
00095 protected:
00096
00100 int
00101 init_ORB (int& argc, char *argv []);
00102
00103
00104
00106 bool m_isInitialized;
00107
00109 CORBA::ORB_var m_orb;
00110
00112 LoggingProxy &m_logProxy;
00113
00115 CORBA::String_var m_ior;
00116 };
00117
00118 #endif