00001 /* -*- C++ -*- */ 00002 /** 00003 * @file CosNotify_Service.h 00004 * 00005 * CosNotify_Service.h,v 1.11 2006/03/14 06:14:34 jtc Exp 00006 * 00007 * @author Pradeep Gore <pradeep@oomworks.com> 00008 * 00009 * 00010 */ 00011 00012 #ifndef TAO_Notify_COSNOTIFY_SERVICE_H 00013 #define TAO_Notify_COSNOTIFY_SERVICE_H 00014 #include /**/ "ace/pre.h" 00015 00016 #include "orbsvcs/Notify/notify_serv_export.h" 00017 00018 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00019 # pragma once 00020 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00021 00022 #include "orbsvcs/Notify/Service.h" 00023 #include "orbsvcs/Notify/Builder.h" 00024 #include "orbsvcs/Notify/Factory.h" 00025 00026 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00027 00028 class TAO_Notify_Properties; 00029 class TAO_Notify_EventChannelFactory; 00030 00031 /** 00032 * @class TAO_CosNotify_Service 00033 * 00034 * @brief A service object for creating the Notify Service Factory. 00035 * 00036 */ 00037 class TAO_Notify_Serv_Export TAO_CosNotify_Service : public TAO_Notify_Service 00038 { 00039 public: 00040 /// Constuctor 00041 TAO_CosNotify_Service (void); 00042 00043 /// Destructor 00044 virtual ~TAO_CosNotify_Service (); 00045 00046 /// Init the service from configurator 00047 virtual int init (int argc, ACE_TCHAR *argv[]); 00048 00049 /// Init the service from driver 00050 virtual void init_service (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL); 00051 00052 virtual int fini (void); 00053 00054 /// Create the Channel Factory. 00055 virtual CosNotifyChannelAdmin::EventChannelFactory_ptr create (PortableServer::POA_ptr default_POA ACE_ENV_ARG_DECL); 00056 00057 /// Called by the factory when it is destroyed. 00058 virtual void remove (TAO_Notify_EventChannelFactory* ecf ACE_ENV_ARG_DECL); 00059 00060 protected: 00061 /// Init the data members 00062 virtual void init_i (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL); 00063 00064 private: 00065 00066 /// Create the Factory for Notify objects. 00067 virtual TAO_Notify_Factory* create_factory (ACE_ENV_SINGLE_ARG_DECL); 00068 00069 /// Create the Builder for Notify objects. 00070 virtual TAO_Notify_Builder* create_builder (ACE_ENV_SINGLE_ARG_DECL); 00071 00072 /// Set thread options on <qos>. 00073 void set_threads (CosNotification::QoSProperties &qos, int threads); 00074 00075 TAO_Notify_Factory& factory(); 00076 00077 /// Service component for building NS participants. 00078 TAO_Notify_Builder& builder(); 00079 00080 /// Service component for object factory operations. 00081 ACE_Auto_Ptr< TAO_Notify_Factory > factory_; 00082 00083 /// Service component for building NS participants. 00084 ACE_Auto_Ptr< TAO_Notify_Builder > builder_; 00085 }; 00086 00087 TAO_END_VERSIONED_NAMESPACE_DECL 00088 00089 ACE_STATIC_SVC_DECLARE (TAO_CosNotify_Service) 00090 ACE_FACTORY_DECLARE (TAO_Notify_Serv, TAO_CosNotify_Service) 00091 00092 ACE_STATIC_SVC_DECLARE (TAO_Notify_Default_EMO_Factory_OLD) 00093 00094 #include /**/ "ace/post.h" 00095 #endif /* TAO_Notify_COSNOTIFY_SERVICE_H */