summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/HTIOP/HTIOP_Connector.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/HTIOP/HTIOP_Connector.h')
-rw-r--r--TAO/orbsvcs/orbsvcs/HTIOP/HTIOP_Connector.h133
1 files changed, 133 insertions, 0 deletions
diff --git a/TAO/orbsvcs/orbsvcs/HTIOP/HTIOP_Connector.h b/TAO/orbsvcs/orbsvcs/HTIOP/HTIOP_Connector.h
new file mode 100644
index 00000000000..baed8c471ae
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/HTIOP/HTIOP_Connector.h
@@ -0,0 +1,133 @@
+// This may look like C, but it's really -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file HTIOP_Connector.h
+ *
+ * $Id$
+ *
+ * HTIOP specific connector processing
+ *
+ *
+ * @author Priyanka Gontla <gontla_p@ociweb.com>
+ */
+//=============================================================================
+
+
+#ifndef HTIOP_CONNECTOR_H
+#define HTIOP_CONNECTOR_H
+#include /**/ "ace/pre.h"
+
+#include "tao/Connector_Impl.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "HTIOP_Connection_Handler.h"
+
+#include "tao/Transport_Connector.h"
+
+#include "ace/SOCK_Connector.h"
+#include "ace/Connector.h"
+#include "ace/OS.h"
+
+
+namespace ACE
+{
+ namespace HTBP
+ {
+ class Environment;
+ }
+}
+
+class TAO_GIOP_Invocation;
+
+// ****************************************************************
+
+namespace TAO
+{
+ namespace HTIOP
+ {
+ class Endpoint;
+
+ /**
+ * @class HTIOP_Connector
+ *
+ * @brief HTIOP-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 HTIOP_Export Connector : public TAO_Connector
+ {
+ public:
+ typedef TAO_Connect_Concurrency_Strategy<Connection_Handler>
+ CONNECT_CONCURRENCY_STRATEGY;
+
+ typedef TAO_Connect_Creation_Strategy<Connection_Handler>
+ CONNECT_CREATION_STRATEGY;
+
+ /// Initialization and termination methods.
+ /// Constructor.
+ /// {@
+ Connector (ACE::HTBP::Environment *ht_env);
+
+ /// Destructor.
+ ~Connector (void);
+
+ /// @}
+
+
+ /// The TAO_Connector methods, please check the documentation on
+ /// Transport_Connector.h
+ /// {@
+ int open (TAO_ORB_Core *orb_core);
+ int close (void);
+
+ TAO_Profile *create_profile (TAO_InputCDR& cdr);
+
+ virtual int check_prefix (const char *endpoint);
+
+ virtual char object_key_delimiter (void) const;
+ /// @}
+
+ protected:
+
+ // = The TAO_Connector methods, please check the documentation on
+ // Transport_Connector.h
+ int set_validate_endpoint (TAO_Endpoint *ep);
+
+ TAO_Transport *make_connection (TAO::Profile_Transport_Resolver *r,
+ TAO_Transport_Descriptor_Interface &desc,
+ ACE_Time_Value *timeout = 0);
+
+
+ /// More TAO_Connector methods, please check the documentation on
+ /// Transport_Connector.h
+ virtual TAO_Profile *make_profile (ACE_ENV_SINGLE_ARG_DECL);
+
+ /// Cancel the passed cvs handler from the connector
+ /// Its not clear what it means to cancel in HTIOP, since there's no
+ /// base connector.
+ virtual int cancel_svc_handler (TAO_Connection_Handler * svc_handler);
+
+ private:
+
+ /// Return the remote endpoint, a helper function
+ Endpoint *remote_endpoint (TAO_Endpoint *ep);
+
+ /// Our creation strategy
+ CONNECT_CREATION_STRATEGY *connect_creation_strategy_;
+
+ /// Our activation strategy
+ CONNECT_CONCURRENCY_STRATEGY *concurrency_strategy_;
+
+ /// reference to the configuration parameters
+ ACE::HTBP::Environment *ht_env_;
+ };
+ }
+}
+#include /**/ "ace/post.h"
+#endif /* HTIOP_CONNECTOR_H */