summaryrefslogtreecommitdiff
path: root/TAO/tao/params.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/params.h')
-rw-r--r--TAO/tao/params.h39
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__)