summaryrefslogtreecommitdiff
path: root/TAO/examples/PluggableUDP/DIOP/DIOP_Connector.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/examples/PluggableUDP/DIOP/DIOP_Connector.h')
-rw-r--r--TAO/examples/PluggableUDP/DIOP/DIOP_Connector.h100
1 files changed, 100 insertions, 0 deletions
diff --git a/TAO/examples/PluggableUDP/DIOP/DIOP_Connector.h b/TAO/examples/PluggableUDP/DIOP/DIOP_Connector.h
new file mode 100644
index 00000000000..f2bf1174b37
--- /dev/null
+++ b/TAO/examples/PluggableUDP/DIOP/DIOP_Connector.h
@@ -0,0 +1,100 @@
+// This may look like C, but it's really -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file DIOP_Connector.h
+ *
+ * $Id$
+ *
+ * DIOP specific connector processing
+ *
+ *
+ * @author Fred Kuhns <fredk@cs.wustl.edu>
+ * @author Balachandran Natarajan <bala@cs.wustl.edu>
+ */
+//=============================================================================
+
+#ifndef TAO_DIOP_CONNECTOR_H
+#define TAO_DIOP_CONNECTOR_H
+#include "ace/pre.h"
+
+#include "tao/Pluggable.h"
+#include "DIOP_Connection_Handler.h"
+#include "diop_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+// ****************************************************************
+
+/**
+ * @class TAO_DIOP_Connector
+ *
+ * @brief DIOP-specific Connector bridge for pluggable protocols.
+ *
+ * Concrete instance of the TAO_Connector class. Responsible
+ * for establishing a connection with a server and is called from the
+ * Connector_Registory.
+ */
+class TAO_DIOP_Export TAO_DIOP_Connector : public TAO_Connector
+{
+public:
+ // = Initialization and termination methods.
+ /// Constructor.
+ TAO_DIOP_Connector (CORBA::Boolean flag = 0);
+
+ /// Destructor.
+ ~TAO_DIOP_Connector (void);
+
+ // = The TAO_Connector methods, please check the documentation on
+ // Pluggable.h
+ int open (TAO_ORB_Core *orb_core);
+ int close (void);
+ int connect (TAO_Transport_Descriptor_Interface *desc,
+ TAO_Transport *&transport,
+ ACE_Time_Value *max_wait_time,
+ CORBA::Environment &ACE_TRY_ENV);
+ int preconnect (const char *preconnections);
+ TAO_Profile *create_profile (TAO_InputCDR& cdr);
+
+ virtual int check_prefix (const char *endpoint);
+
+ virtual char object_key_delimiter (void) const;
+
+protected:
+
+ /// = More TAO_Connector methods, please check the documentation on
+ /// Pluggable.h
+ virtual TAO_Profile * make_profile (CORBA::Environment &ACE_TRY_ENV);
+
+ /// Obtain tcp properties that must be used by this connector, i.e.,
+ /// initialize <tcp_properties_>.
+ int init_tcp_properties (void);
+
+protected:
+
+ /// TCP configuration properties to be used for all
+ /// connections established by this connector.
+ TAO_DIOP_Properties tcp_properties_;
+
+ /// Do we need to use a GIOP_Lite for sending messages?
+ CORBA::Boolean lite_flag_;
+
+private:
+ // @@ Michael: UDP Addition
+ ACE_Hash_Map_Manager_Ex < ACE_INET_Addr,
+ TAO_DIOP_Connection_Handler *,
+ ACE_Hash < ACE_INET_Addr >,
+ ACE_Equal_To < ACE_INET_Addr >,
+ ACE_Null_Mutex > svc_handler_table_;
+
+ typedef ACE_Hash_Map_Iterator_Ex < ACE_INET_Addr,
+ TAO_DIOP_Connection_Handler *,
+ ACE_Hash < ACE_INET_Addr >,
+ ACE_Equal_To < ACE_INET_Addr >,
+ ACE_Null_Mutex > SvcHandlerIterator;
+};
+
+#include "ace/post.h"
+#endif /* TAO_DIOP_CONNECTOR_H */