00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file COIOP_Connector.h 00006 * 00007 * $Id: COIOP_Connector.h 78931 2007-07-18 09:59:36Z johnnyw $ 00008 * 00009 * COIOP specific connector processing 00010 * 00011 * @author Johnny Willemsen <jwillemsen@remedy.nl> 00012 */ 00013 //============================================================================= 00014 00015 #ifndef TAO_COIOP_CONNECTOR_H 00016 #define TAO_COIOP_CONNECTOR_H 00017 00018 #include /**/ "ace/pre.h" 00019 00020 #include "tao/orbconf.h" 00021 00022 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00023 # pragma once 00024 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00025 00026 #if defined (TAO_HAS_COIOP) && (TAO_HAS_COIOP != 0) 00027 00028 #include "tao/Strategies/COIOP_Connection_Handler.h" 00029 #include "tao/Transport_Connector.h" 00030 00031 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00032 00033 class TAO_Endpoint; 00034 class TAO_COIOP_Endpoint; 00035 00036 // **************************************************************** 00037 00038 /** 00039 * @class TAO_COIOP_Connector 00040 * 00041 * @brief COIOP-specific Connector bridge for pluggable protocols. 00042 * 00043 * Concrete instance of the TAO_Connector class. Responsible 00044 * for establishing a connection with a server and is called from the 00045 * Connector_Registory. 00046 */ 00047 class TAO_Strategies_Export TAO_COIOP_Connector : public TAO_Connector 00048 { 00049 public: 00050 // = Initialization and termination methods. 00051 /// Constructor. 00052 TAO_COIOP_Connector (void); 00053 00054 /// Destructor. 00055 ~TAO_COIOP_Connector (void); 00056 00057 /** 00058 * @name The TAO_Connector Methods 00059 * 00060 * Please check the documentation in Transport_Connector.h for details. 00061 */ 00062 //@{ 00063 int open (TAO_ORB_Core *orb_core); 00064 int close (void); 00065 00066 TAO_Profile *create_profile (TAO_InputCDR& cdr); 00067 00068 virtual int check_prefix (const char *endpoint); 00069 00070 virtual char object_key_delimiter (void) const; 00071 //@} 00072 00073 protected: 00074 00075 /** 00076 * @name More TAO_Connector Methods 00077 * 00078 * Please check the documentation in Transport_Connector.h for details. 00079 */ 00080 //@{ 00081 int set_validate_endpoint (TAO_Endpoint *ep); 00082 00083 TAO_Transport *make_connection (TAO::Profile_Transport_Resolver *r, 00084 TAO_Transport_Descriptor_Interface &desc, 00085 ACE_Time_Value *timeout = 0); 00086 00087 virtual TAO_Profile * make_profile (void); 00088 //@} 00089 00090 /// Cancel the passed cvs handler from the connector 00091 int cancel_svc_handler (TAO_Connection_Handler * svc_handler); 00092 00093 private: 00094 00095 /// Return the remote endpoint, a helper function 00096 TAO_COIOP_Endpoint *remote_endpoint (TAO_Endpoint *ep); 00097 }; 00098 00099 TAO_END_VERSIONED_NAMESPACE_DECL 00100 00101 #endif /* TAO_HAS_COIOP && TAO_HAS_COIOP != 0 */ 00102 00103 #include /**/ "ace/post.h" 00104 00105 #endif /* TAO_COIOP_CONNECTOR_H */