diff options
Diffstat (limited to 'trunk/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Event_Loader.h')
-rw-r--r-- | trunk/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Event_Loader.h | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/trunk/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Event_Loader.h b/trunk/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Event_Loader.h new file mode 100644 index 00000000000..28bfe57bad7 --- /dev/null +++ b/trunk/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Event_Loader.h @@ -0,0 +1,110 @@ +// -*- C++ -*- + +/** + * @file CEC_Event_Loader.h + * + * $Id$ + * + * Define a class to dynamically load the COS Event Service. + * + * @author Priyanka Gontla <pgontla@ece.uci.edu> + */ + +#ifndef TAO_CEC_EVENT_LOADER_H +#define TAO_CEC_EVENT_LOADER_H + +#include "tao/Object_Loader.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "orbsvcs/CosEvent/CEC_EventChannel.h" + +#if defined (TAO_HAS_TYPED_EVENT_CHANNEL) +#include "orbsvcs/CosEvent/CEC_TypedEventChannel.h" +#endif /* TAO_HAS_TYPED_EVENT_CHANNEL */ + +#include "orbsvcs/CosNamingC.h" + +#include "ace/Service_Config.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +/** + * @class TAO_CEC_Event_Loader + * + * @brief Dynamically load an instance of the COS Event Service. + */ +class TAO_Event_Serv_Export TAO_CEC_Event_Loader : public TAO_Object_Loader +{ +public: + /// Constructor + TAO_CEC_Event_Loader (void); + + /// Destructor + ~TAO_CEC_Event_Loader (void); + + //@{ + /** + * @name Derived from ACE_Service_Object + */ + virtual int init (int argc, ACE_TCHAR *argv[]); + virtual int fini (void); + //@} + + //@{ + /** + * @name Derived from TAO_Object_Loader + */ + virtual CORBA::Object_ptr create_object (CORBA::ORB_ptr orb, + int argc, + ACE_TCHAR *argv[] + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + //@} + +protected: + /// Keep a pointer to the underlying ORB. + CORBA::ORB_var orb_; + + /// Flag to control the event loop + int terminate_flag_; + + /// Attributes used to configure the Event Service properties. + TAO_CEC_EventChannel_Attributes *attributes_; + + /// Factory used to configure the Event Service strategies. + TAO_CEC_Factory *factory_; + + /// The Event Service implementation class. + TAO_CEC_EventChannel *ec_impl_; + +#if defined (TAO_HAS_TYPED_EVENT_CHANNEL) + /// Attributes used to configure the Typed Event Service properties. + TAO_CEC_TypedEventChannel_Attributes *typed_attributes_; + + /// The Typed Event Service implementation class. + TAO_CEC_TypedEventChannel *typed_ec_impl_; +#endif /* TAO_HAS_TYPED_EVENT_CHANNEL */ + + /// Naming Context needed if '-x' option is passed + CosNaming::NamingContext_var naming_context_; + + /// Flag to check if '-x' option is passed + int bind_to_naming_service_; + + /// The name used when binding to the NamingService. + CosNaming::Name channel_name_; + +private: + // Disallow copying and assignment. + TAO_CEC_Event_Loader (const TAO_CEC_Event_Loader &); + TAO_CEC_Event_Loader &operator= (const TAO_CEC_Event_Loader &); +}; + +TAO_END_VERSIONED_NAMESPACE_DECL + +ACE_FACTORY_DECLARE (TAO_Event_Serv, TAO_CEC_Event_Loader) + +#endif /* TAO_CEC_EVENT_LOADER_H */ |