3 //=============================================================================
5 * @file Connector_Registry.h
7 * Interface for the TAO Connector Registry
9 * @author Fred Kuhns <fredk@cs.wustl.edu>
11 //=============================================================================
13 #ifndef TAO_CONNECTOR_REGISTRY_H
14 #define TAO_CONNECTOR_REGISTRY_H
15 #include /**/ "ace/pre.h"
17 #include /**/ "tao/TAO_Export.h"
19 #if !defined (ACE_LACKS_PRAGMA_ONCE)
21 #endif /* ACE_LACKS_PRAGMA_ONCE */
23 #include "tao/Basic_Types.h"
24 #include "ace/Global_Macros.h"
26 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
28 // Forward declarations.
35 typedef TAO_Connector
** TAO_ConnectorSetIterator
;
38 * @class TAO_Connector_Registry
40 * @brief Per-ORB TAO Connector Registry
42 * Connector Registry and Generic Connector interface definitions.
43 * All loaded ESIOP or GIOP connector bridges must register with
45 * This class is able to dynamically load a set of
46 * concrete protocol connectors which have registered with the service
47 * configurator and added their Factory name to the Resource_Factory
48 * line of the svc.conf file.
50 class TAO_Export TAO_Connector_Registry
53 /// Default constructor.
54 TAO_Connector_Registry ();
56 /// Default destructor.
57 ~TAO_Connector_Registry ();
59 /// Return the connector bridges
60 TAO_Connector
*get_connector (CORBA::ULong tag
) const;
62 /// Initialize all registered connectors.
63 int open (TAO_ORB_Core
*orb_core
);
65 /// Close all open connectors.
68 /// Parse a string containing a URL style IOR and return an
70 int make_mprofile (const char *ior
, TAO_MProfile
&mprofile
);
72 /// Create a profile based on the contents of @a cdr
73 TAO_Profile
* create_profile (TAO_InputCDR
& cdr
);
75 /// Obtain the object key delimiter used by the protocol specified in
76 /// the provided URL style IOR.
77 char object_key_delimiter (const char *ior
);
80 TAO_ConnectorSetIterator
begin () const;
81 TAO_ConnectorSetIterator
end () const;
84 TAO_Connector_Registry (const TAO_Connector_Registry
&) = delete;
85 void operator= (const TAO_Connector_Registry
&) = delete;
86 TAO_Connector_Registry (TAO_Connector_Registry
&&) = delete;
87 void operator= (TAO_Connector_Registry
&&) = delete;
90 /// List of connectors that are currently open.
91 TAO_Connector
** connectors_
;
93 /// Number of connectors that are currently open.
97 TAO_END_VERSIONED_NAMESPACE_DECL
99 #if defined(__ACE_INLINE__)
100 #include "tao/Connector_Registry.inl"
101 #endif /* __ACE_INLINE__ */
103 #include /**/ "ace/post.h"
104 #endif /* TAO_CONNECTOR_REGISTRY_H */