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 */