CosNotify_Service.h

Go to the documentation of this file.
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 */

Generated on Thu Nov 9 13:24:09 2006 for TAO_CosNotification by doxygen 1.3.6