diff options
Diffstat (limited to 'TAO/tao/params.h')
-rw-r--r-- | TAO/tao/params.h | 39 |
1 files changed, 29 insertions, 10 deletions
diff --git a/TAO/tao/params.h b/TAO/tao/params.h index 2394f5ee9e9..ace616f791f 100644 --- a/TAO/tao/params.h +++ b/TAO/tao/params.h @@ -16,6 +16,8 @@ #include /**/ "ace/pre.h" #include "ace/Unbounded_Queue.h" +#include "ace/Hash_Map_Manager.h" +#include "ace/Synch.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once @@ -38,7 +40,13 @@ class TAO_Reverse_Active_Object_Map_Impl; // in ACE so we do not have to worry about increasing TAO's // footprint by using this container. typedef ACE_Unbounded_Queue<ACE_CString> TAO_EndpointSet; -typedef ACE_Unbounded_Queue_Iterator<ACE_CString> TAO_EndpointSetIterator; +typedef ACE_Unbounded_Queue_Const_Iterator<ACE_CString> TAO_EndpointSetIterator; +typedef ACE_Hash_Map_Manager_Ex<ACE_CString, + ACE_CString, + ACE_Hash<ACE_CString>, + ACE_Equal_To<ACE_CString>, + ACE_Null_Mutex> + TAO_EndpointMap; // ------------------------------------------------------------------- @@ -66,9 +74,10 @@ public: /// Specifies the endpoints on which this server is willing to /// listen for requests. - int endpoints (ACE_CString &endpoints); - TAO_EndpointSet &endpoints (void); - void add_endpoint (ACE_CString &endpoint); + int add_endpoints (const ACE_CString &lane, + const ACE_CString &endpoints); + void get_endpoint_set (const ACE_CString &lane, + TAO_EndpointSet &endpoint_set); /// Set/Get the port of services locatable through multicast. CORBA::UShort service_port (TAO_MCAST_SERVICEID service_id) const; @@ -159,6 +168,13 @@ public: bool disable_rt_collocation_resolver (void) const; void disable_rt_collocation_resolver (bool); + /// Accepts the list of preferred interfaces and does a simple + /// semantic check on the string + bool preferred_interfaces (const char *s); + const char *preferred_interfaces (void) const; + + void enforce_pref_interfaces (bool p); + bool enforce_pref_interfaces (void) const; private: // Each "endpoint" is of the form: // @@ -176,16 +192,14 @@ private: // iiop://space:2001,odyssey:2010;uiop://foo,bar // // All preconnect or endpoint strings should be of the above form(s). - - int parse_endpoints (ACE_CString &endpoints, - TAO_EndpointSet &endpoints_list); + int parse_and_add_endpoints (const ACE_CString &endpoints, + TAO_EndpointSet &endpoint_set); /// List of endpoints used to pre-establish connections. // TAO_EndpointSet preconnects_list_; - /// List of endpoints this server is willing to accept requests - /// on. - TAO_EndpointSet endpoints_list_; + /// Map of endpoints this server is willing to accept requests on. + TAO_EndpointMap endpoints_map_; /// Port numbers of the configured services. CORBA::UShort service_port_[TAO_NO_OF_MCAST_SERVICES]; @@ -250,6 +264,9 @@ private: /// Single read optimization. int single_read_optimization_; + /// Preferred network interfaces as a string + ACE_CString pref_network_; + /// Default collocation resolver /** * The vanilla ORB has only one collocation resolver. But if the @@ -262,6 +279,8 @@ private: * loaded if the RTORB is used. */ bool disable_rt_collocation_resolver_; + + bool enforce_preferred_interfaces_; }; #if defined (__ACE_INLINE__) |