Updated logging to include the class/method so that it is more obvious where these...
[ACE_TAO.git] / TAO / tao / Connector_Registry.h
blob19bd5ea2e1e677a0c771628cf36b75903b023379
1 // -*- C++ -*-
3 //=============================================================================
4 /**
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)
20 # 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.
29 class TAO_ORB_Core;
30 class TAO_Connector;
31 class TAO_MProfile;
32 class TAO_Profile;
33 class TAO_InputCDR;
35 typedef TAO_Connector** TAO_ConnectorSetIterator;
37 /**
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
44 * this object.
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
52 public:
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.
66 int close_all ();
68 /// Parse a string containing a URL style IOR and return an
69 /// MProfile.
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);
79 // = Iterator.
80 TAO_ConnectorSetIterator begin () const;
81 TAO_ConnectorSetIterator end () const;
83 private:
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;
89 private:
90 /// List of connectors that are currently open.
91 TAO_Connector** connectors_;
93 /// Number of connectors that are currently open.
94 size_t size_;
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 */