Properties.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 /**
00004  *  @file Properties.h
00005  *
00006  *  $Id: Properties.h 78802 2007-07-05 18:51:19Z johnnyw $
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   /// Return a singleton instance of this class.
00050   static TAO_Notify_Properties * instance (void);
00051 
00052   // = Property Accessors
00053   TAO_Notify_Factory* factory (void);
00054   void factory (TAO_Notify_Factory* factory);
00055 
00056   TAO_Notify_Builder* builder (void);
00057   void builder (TAO_Notify_Builder* builder);
00058 
00059   CORBA::ORB_ptr orb (void);
00060   void orb (CORBA::ORB_ptr orb);
00061   CORBA::ORB_ptr dispatching_orb (void);
00062   void dispatching_orb (CORBA::ORB_ptr dispatching_orb);
00063 
00064   PortableServer::POA_ptr default_poa (void);
00065   void default_poa (PortableServer::POA_ptr default_poa);
00066 
00067   CORBA::Boolean asynch_updates (void);
00068   void asynch_updates (CORBA::Boolean asynch_updates);
00069 
00070   bool allow_reconnect (void);
00071   void allow_reconnect (bool b);
00072 
00073   // Turn on/off update messages.
00074   CORBA::Boolean updates (void);
00075   void updates (CORBA::Boolean updates);
00076   bool separate_dispatching_orb (void);
00077   void separate_dispatching_orb (bool b);
00078 
00079   // The QoS Property that must be applied to each newly created Event Channel
00080   const CosNotification::QoSProperties& default_event_channel_qos_properties (void);
00081 
00082   // Set the default EC QoS Property.
00083   void default_event_channel_qos_properties (const CosNotification::QoSProperties &ec_qos);
00084 
00085   // The QoS Property that must be applied to each newly created Supplier Admin
00086   const CosNotification::QoSProperties& default_supplier_admin_qos_properties (void);
00087 
00088   // Set the default SA QoS Property.
00089   void default_supplier_admin_qos_properties (const CosNotification::QoSProperties &sa_qos);
00090 
00091   // The QoS Property that must be applied to each newly created Consumer Admin
00092   const CosNotification::QoSProperties& default_consumer_admin_qos_properties (void);
00093 
00094   // Set the default CA QoS Property.
00095   void default_consumer_admin_qos_properties (const CosNotification::QoSProperties &ca_qos);
00096 
00097   // The QoS Property that must be applied to each newly created Proxy Supplier
00098   const CosNotification::QoSProperties& default_proxy_supplier_qos_properties (void);
00099 
00100   // Set the default PS QoS Property.
00101   void default_proxy_supplier_qos_properties (const CosNotification::QoSProperties &ps_qos);
00102 
00103   // The QoS Property that must be applied to each newly created Proxy Consumer
00104   const CosNotification::QoSProperties& default_proxy_consumer_qos_properties (void);
00105 
00106   // Set the default PC QoS Property.
00107   void default_proxy_consumer_qos_properties (const CosNotification::QoSProperties &pc_qos);
00108 
00109 protected:
00110   /// Object Factory
00111   TAO_Notify_Factory* factory_;
00112 
00113   /// Object Builder
00114   TAO_Notify_Builder* builder_;
00115 
00116   /// ORB
00117   CORBA::ORB_var orb_;
00118 
00119   /// dispatching orb
00120   CORBA::ORB_var dispatching_orb_;
00121 
00122   // POA
00123   PortableServer::POA_var default_poa_;
00124 
00125   /// True if send asynch updates.
00126   CORBA::Boolean asynch_updates_;
00127 
00128   /// True if clients can reconnect to proxies.
00129   bool allow_reconnect_;
00130 
00131   /// True is separate dispatching orb
00132   bool separate_dispatching_orb_;
00133 
00134   /// True if updates are enabled (default).
00135   CORBA::Boolean updates_;
00136 
00137   /// The Update period for updates.
00138   ACE_Time_Value update_period_;
00139 
00140   /// The default EC QoS Properties.
00141   CosNotification::QoSProperties ec_qos_;
00142 
00143   /// The default SA QoS Properties.
00144   CosNotification::QoSProperties sa_qos_;
00145 
00146   /// The default CA QoS Properties.
00147   CosNotification::QoSProperties ca_qos_;
00148 
00149   /// The default PS QoS Properties.
00150   CosNotification::QoSProperties ps_qos_;
00151 
00152   /// The default PC QoS Properties.
00153   CosNotification::QoSProperties pc_qos_;
00154 };
00155 
00156 /**
00157  * @todo Remove this legacy TAO_Notify_Properties typedef.
00158  */
00159 typedef TAO_Notify_Properties TAO_Notify_PROPERTIES;
00160 
00161 TAO_END_VERSIONED_NAMESPACE_DECL
00162 
00163 #if defined (__ACE_INLINE__)
00164 #include "orbsvcs/Notify/Properties.inl"
00165 #endif /* __ACE_INLINE__ */
00166 
00167 #include /**/ "ace/post.h"
00168 
00169 #endif /* TAO_Notify_PROPERTIES_H */

Generated on Sun Jan 27 15:39:57 2008 for TAO_CosNotification by doxygen 1.3.6