DIOP_Connector.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file    DIOP_Connector.h
00006  *
00007  *  DIOP_Connector.h,v 1.19 2006/06/01 13:14:04 jwillemsen Exp
00008  *
00009  *  DIOP specific connector processing
00010  *
00011  *  @author  Michael Kircher
00012  */
00013 //=============================================================================
00014 
00015 #ifndef TAO_DIOP_CONNECTOR_H
00016 #define TAO_DIOP_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_DIOP) && (TAO_HAS_DIOP != 0)
00027 
00028 #include "tao/Strategies/DIOP_Connection_Handler.h"
00029 #include "tao/Transport_Connector.h"
00030 
00031 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00032 
00033 class TAO_Endpoint;
00034 class TAO_DIOP_Endpoint;
00035 
00036 // ****************************************************************
00037 
00038 /**
00039  * @class TAO_DIOP_Connector
00040  *
00041  * @brief DIOP-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_DIOP_Connector : public TAO_Connector
00048 {
00049 public:
00050   // = Initialization and termination methods.
00051   /// Constructor.
00052   TAO_DIOP_Connector (CORBA::Boolean flag = false);
00053 
00054   /// Destructor.
00055   ~TAO_DIOP_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 (ACE_ENV_SINGLE_ARG_DECL);
00088   //@}
00089 
00090   /// Cancel the passed cvs handler from the connector
00091   int cancel_svc_handler (TAO_Connection_Handler * svc_handler);
00092 
00093 protected:
00094 
00095   /// Do we need to use a GIOP_Lite for sending messages?
00096   CORBA::Boolean lite_flag_;
00097 
00098 private:
00099 
00100   /// Return the remote endpoint, a helper function
00101   TAO_DIOP_Endpoint *remote_endpoint (TAO_Endpoint *ep);
00102 
00103 private:
00104   // @@ Michael: UDP Addition
00105   ACE_Hash_Map_Manager_Ex < ACE_INET_Addr,
00106                             TAO_DIOP_Connection_Handler *,
00107                             ACE_Hash < ACE_INET_Addr >,
00108                             ACE_Equal_To < ACE_INET_Addr >,
00109                             ACE_Null_Mutex > svc_handler_table_;
00110 
00111   typedef ACE_Hash_Map_Iterator_Ex < ACE_INET_Addr,
00112                                      TAO_DIOP_Connection_Handler *,
00113                                      ACE_Hash < ACE_INET_Addr >,
00114                                      ACE_Equal_To < ACE_INET_Addr >,
00115                                      ACE_Null_Mutex > SvcHandlerIterator;
00116 };
00117 
00118 TAO_END_VERSIONED_NAMESPACE_DECL
00119 
00120 #endif /* TAO_HAS_DIOP && TAO_HAS_DIOP != 0 */
00121 
00122 #include /**/ "ace/post.h"
00123 
00124 #endif  /* TAO_DIOP_CONNECTOR_H */

Generated on Thu Nov 9 13:39:28 2006 for TAO_Strategies by doxygen 1.3.6