Properties.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 /**
00004  *  @file Properties.h
00005  *
00006  *  Properties.h,v 1.21 2006/03/14 06:14:34 jtc Exp
00007  *
00008  *  @author Pradeep Gore <pradeep@oomworks.com>
00009  */
00010 
00011 #ifndef TAO_Notify_PROPERTIES_H
00012 #define TAO_Notify_PROPERTIES_H
00013 
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/CosNotificationC.h"
00023 
00024 #include "tao/PortableServer/PortableServer.h"
00025 
00026 #include "tao/TAO_Singleton.h"
00027 #include "tao/ORB.h"
00028 
00029 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00030 
00031 class TAO_Notify_Factory;
00032 class TAO_Notify_Builder;
00033 
00034 /**
00035  * @class TAO_Notify_Properties
00036  *
00037  * @brief Global properties that strategize Notify's run-time behaviour.
00038  *
00039  */
00040 class TAO_Notify_Serv_Export TAO_Notify_Properties
00041 {
00042 public:
00043   /// Constuctor
00044   TAO_Notify_Properties (void);
00045 
00046   /// Destructor
00047   ~TAO_Notify_Properties ();
00048 
00049   // = Property Accessors
00050   TAO_Notify_Factory* factory (void);
00051   void factory (TAO_Notify_Factory* factory);
00052 
00053   TAO_Notify_Builder* builder (void);
00054   void builder (TAO_Notify_Builder* builder);
00055 
00056   CORBA::ORB_ptr orb (void);
00057   void orb (CORBA::ORB_ptr orb);
00058 
00059   PortableServer::POA_ptr default_poa (void);
00060   void default_poa (PortableServer::POA_ptr default_poa);
00061 
00062   CORBA::Boolean asynch_updates (void);
00063   void asynch_updates (CORBA::Boolean asynch_updates);
00064 
00065   bool allow_reconnect (void);
00066   void allow_reconnect (bool b);
00067 
00068   // Turn on/off update messages.
00069   CORBA::Boolean updates (void);
00070   void updates (CORBA::Boolean updates);
00071 
00072   // The QoS Property that must be applied to each newly created Event Channel
00073   const CosNotification::QoSProperties& default_event_channel_qos_properties (void);
00074 
00075   // Set the default EC QoS Property.
00076   void default_event_channel_qos_properties (const CosNotification::QoSProperties &ec_qos);
00077 
00078   // The QoS Property that must be applied to each newly created Supplier Admin
00079   const CosNotification::QoSProperties& default_supplier_admin_qos_properties (void);
00080 
00081   // Set the default SA QoS Property.
00082   void default_supplier_admin_qos_properties (const CosNotification::QoSProperties &sa_qos);
00083 
00084   // The QoS Property that must be applied to each newly created Consumer Admin
00085   const CosNotification::QoSProperties& default_consumer_admin_qos_properties (void);
00086 
00087   // Set the default CA QoS Property.
00088   void default_consumer_admin_qos_properties (const CosNotification::QoSProperties &ca_qos);
00089 
00090   // The QoS Property that must be applied to each newly created Proxy Supplier
00091   const CosNotification::QoSProperties& default_proxy_supplier_qos_properties (void);
00092 
00093   // Set the default PS QoS Property.
00094   void default_proxy_supplier_qos_properties (const CosNotification::QoSProperties &ps_qos);
00095 
00096   // The QoS Property that must be applied to each newly created Proxy Consumer
00097   const CosNotification::QoSProperties& default_proxy_consumer_qos_properties (void);
00098 
00099   // Set the default PC QoS Property.
00100   void default_proxy_consumer_qos_properties (const CosNotification::QoSProperties &pc_qos);
00101 
00102 protected:
00103   /// Object Factory
00104   TAO_Notify_Factory* factory_;
00105 
00106   /// Object Builder
00107   TAO_Notify_Builder* builder_;
00108 
00109   /// ORB
00110   CORBA::ORB_var orb_;
00111 
00112   // POA
00113   PortableServer::POA_var default_poa_;
00114 
00115   /// True if send asynch updates.
00116   CORBA::Boolean asynch_updates_;
00117 
00118   /// True if clients can reconnect to proxies.
00119   bool allow_reconnect_;
00120 
00121   /// True if updates are enabled (default).
00122   CORBA::Boolean updates_;
00123 
00124   /// The Update period for updates.
00125   ACE_Time_Value update_period_;
00126 
00127   /// The default EC QoS Properties.
00128   CosNotification::QoSProperties ec_qos_;
00129 
00130   /// The default SA QoS Properties.
00131   CosNotification::QoSProperties sa_qos_;
00132 
00133   /// The default CA QoS Properties.
00134   CosNotification::QoSProperties ca_qos_;
00135 
00136   /// The default PS QoS Properties.
00137   CosNotification::QoSProperties ps_qos_;
00138 
00139   /// The default PC QoS Properties.
00140   CosNotification::QoSProperties pc_qos_;
00141 };
00142 
00143 TAO_NOTIFY_SERV_SINGLETON_DECLARE (TAO_Singleton, TAO_Notify_Properties, TAO_SYNCH_MUTEX)
00144 
00145 typedef TAO_Singleton<TAO_Notify_Properties, TAO_SYNCH_MUTEX> TAO_Notify_PROPERTIES;
00146 
00147 TAO_END_VERSIONED_NAMESPACE_DECL
00148 
00149 #if defined (__ACE_INLINE__)
00150 #include "orbsvcs/Notify/Properties.inl"
00151 #endif /* __ACE_INLINE__ */
00152 
00153 #include /**/ "ace/post.h"
00154 
00155 #endif /* TAO_Notify_PROPERTIES_H */

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