summaryrefslogtreecommitdiff
path: root/TAO/tao/Resource_Factory.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/Resource_Factory.h')
-rw-r--r--TAO/tao/Resource_Factory.h91
1 files changed, 44 insertions, 47 deletions
diff --git a/TAO/tao/Resource_Factory.h b/TAO/tao/Resource_Factory.h
index 7c7416da2c9..71d8a9c7141 100644
--- a/TAO/tao/Resource_Factory.h
+++ b/TAO/tao/Resource_Factory.h
@@ -25,14 +25,10 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "ace/Hash_Map_Manager.h"
-#include "tao/Pluggable.h"
-#include "tao/Protocol_Factory.h"
+#include "tao/IIOP_Connector.h"
#include "tao/corbafwd.h"
-#include "tao/orbconf.h"
-#include "ace/Containers_T.h"
-#include "tao/Acceptor_Registry.h"
-#include "tao/Connector_Registry.h"
+class TAO_Client_Connection_Handler;
class TAO_POA;
class TAO_Object_Adapter;
@@ -48,40 +44,32 @@ public:
~TAO_Cached_Connector_Lock (void);
};
+typedef ACE_Cached_Connect_Strategy<TAO_Client_Connection_Handler,
+ TAO_SOCK_CONNECTOR,
+ TAO_Cached_Connector_Lock>
+ TAO_CACHED_CONNECT_STRATEGY;
+
// ****************************************************************
-class TAO_Export TAO_Protocol_Item
+class TAO_Collocation_Table_Lock : public ACE_Adaptive_Lock
{
+ // TITLE
+ // This lock class determines the type underlying lock
+ // when it gets constructed.
public:
- TAO_Protocol_Item (const ACE_CString &name);
- // creator method, the protocol name can only be set when the
- // object is created.
-
- const ACE_CString &protocol_name (void);
- // return a reference to the character representation of the protocol
- // factories name.
-
- TAO_Protocol_Factory *factory (void);
- // return a pointer to the protocol factory.
-
- void factory (TAO_Protocol_Factory *factory);
- // set the factory pointer's valus.
+ TAO_Collocation_Table_Lock (void);
+ ~TAO_Collocation_Table_Lock (void);
+};
-private:
- ACE_CString name_;
- // protocol factory name.
+typedef ACE_Hash_Map_Manager<ACE_INET_Addr, TAO_Object_Adapter *, TAO_Collocation_Table_Lock> TAO_GLOBAL_Collocation_Table;
- TAO_Protocol_Factory *factory_;
- // pointer to factory object.
-};
+// ****************************************************************
-// typedefs for containers containing the list of loaded protocol
-// factories.
-typedef ACE_Unbounded_Set<TAO_Protocol_Item*>
- TAO_ProtocolFactorySet;
+typedef ACE_NOOP_Creation_Strategy<TAO_Client_Connection_Handler>
+ TAO_NULL_CREATION_STRATEGY;
-typedef ACE_Unbounded_Set_Iterator<TAO_Protocol_Item*>
- TAO_ProtocolFactorySetItor;
+typedef ACE_NOOP_Concurrency_Strategy<TAO_Client_Connection_Handler>
+ TAO_NULL_ACTIVATION_STRATEGY;
// ****************************************************************
@@ -107,18 +95,37 @@ public:
virtual ACE_Thread_Manager *get_thr_mgr (void);
// Return an <ACE_Thread_Manager> to be utilized.
- virtual TAO_Acceptor_Registry *get_acceptor_registry (void);
- // return a reference to the acceptor registry.
+ virtual TAO_Connector *get_connector (void);
+ // Return an Connector to be utilized.
virtual TAO_Connector_Registry *get_connector_registry (void);
// Return an Connector to be utilized.
+ virtual TAO_CACHED_CONNECT_STRATEGY *get_cached_connect_strategy (void);
+ // Return an Cached Connect Strategy to be utilized.
+
+ virtual TAO_NULL_CREATION_STRATEGY *get_null_creation_strategy (void);
+ // This no-op creation strategy is necessary for using the
+ // <Strategy_Connector> with the <Cached_Connect_Strategy>.
+
+ virtual TAO_NULL_ACTIVATION_STRATEGY *get_null_activation_strategy (void);
+ // This no-op activation strategy prevents the cached connector from
+ // calling the service handler's <open> method multiple times.
+
+ virtual TAO_Acceptor *get_acceptor (void);
+ // Return an Acceptor to be utilized.
+
virtual TAO_POA *get_root_poa (void);
// Return a root poa to be utilized.
virtual TAO_Object_Adapter *object_adapter (void);
// Return a object adapter to be utilized.
+ virtual TAO_GLOBAL_Collocation_Table *get_global_collocation_table (void);
+ // Get the global collocation table. Return the pointer to the
+ // global collocation table if we are using one, otherwise, return
+ // 0.
+
virtual ACE_Allocator* input_cdr_dblock_allocator (void);
virtual ACE_Allocator* input_cdr_buffer_allocator (void);
// Access the input CDR allocators.
@@ -131,19 +138,9 @@ public:
// The Message Blocks used for input CDRs must have appropiate
// locking strategies.
- virtual TAO_ProtocolFactorySet *get_protocol_factories (void);
- // The protocol factory list is implemented in this class since
- // a) it will be a global resource and
- // b) it is initialized at start up and then not altered.
- // Returns a container holding the list of loaded protocols.
-
- virtual int init_protocol_factories (void);
- // this method will loop through the protocol list and
- // using the protocol name field this method will
- // retrieve a pointer to the associated protocol factory
- // from the service configurator. It is assumed
- // that only one thread will call this method at ORB initialization.
- // NON-THREAD-SAFE
+ virtual int reactor_lock (void);
+ // Returns 0 if a reactor without locking was configured.
+
};
#endif /* TAO_RESOURCE_FACTORY_H */