UIPMC_Connector.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file     UIPMC_Connector.h
00006  *
00007  *  UIPMC_Connector.h,v 1.17 2006/03/14 06:14:34 jtc Exp
00008  *
00009  *  MIOP specific connector processing.
00010  *
00011  *  @author Frank Hunleth <fhunleth@cs.wustl.edu>
00012  */
00013 //=============================================================================
00014 
00015 #ifndef TAO_UIPMC_CONNECTOR_H
00016 #define TAO_UIPMC_CONNECTOR_H
00017 
00018 #include /**/ "ace/pre.h"
00019 
00020 #include "orbsvcs/PortableGroup/portablegroup_export.h"
00021 
00022 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00023 # pragma once
00024 #endif /* ACE_LACKS_PRAGMA_ONCE */
00025 
00026 #include "orbsvcs/PortableGroup/UIPMC_Connection_Handler.h"
00027 
00028 #include "tao/Transport_Connector.h"
00029 #include "ace/Null_Mutex.h"
00030 
00031 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00032 
00033 // ****************************************************************
00034 
00035 /**
00036  * @class TAO_UIPMC_Connector
00037  *
00038  * @brief UIPMC-specific Connector bridge for pluggable protocols.
00039  *
00040  * Concrete instance of the TAO_Connector class.  Responsible
00041  * for establishing a connection with a server and is called from the
00042  * Connector_Registory.
00043  */
00044 class TAO_PortableGroup_Export TAO_UIPMC_Connector : public TAO_Connector
00045 {
00046 public:
00047   // = Initialization and termination methods.
00048   /// Constructor.
00049   TAO_UIPMC_Connector (CORBA::Boolean flag = 0);
00050 
00051   /// Destructor.
00052   ~TAO_UIPMC_Connector (void);
00053 
00054   // = The TAO_Connector methods, please check the documentation on
00055   // Transport_Connector.h
00056   int open (TAO_ORB_Core *orb_core);
00057   int close (void);
00058   TAO_Profile *create_profile (TAO_InputCDR& cdr);
00059 
00060   virtual int check_prefix (const char *endpoint);
00061 
00062   virtual char object_key_delimiter (void) const;
00063 
00064 protected:
00065   /// = More TAO_Connector methods, please check the documentation on
00066   ///   Transport_Connector.h
00067   int set_validate_endpoint (TAO_Endpoint *endpoint);
00068 
00069   TAO_Transport *make_connection (TAO::Profile_Transport_Resolver *r,
00070                                   TAO_Transport_Descriptor_Interface &desc,
00071                                   ACE_Time_Value *timeout = 0);
00072 
00073   virtual TAO_Profile * make_profile (ACE_ENV_SINGLE_ARG_DECL);
00074 
00075   /// Cancel the passed cvs handler from the connector
00076   virtual int cancel_svc_handler (TAO_Connection_Handler * svc_handler);
00077 
00078 private:
00079   // @@ Michael: UDP Addition
00080   ACE_Hash_Map_Manager_Ex < ACE_INET_Addr,
00081                             TAO_UIPMC_Connection_Handler *,
00082                             ACE_Hash < ACE_INET_Addr >,
00083                             ACE_Equal_To < ACE_INET_Addr >,
00084                             ACE_Null_Mutex >
00085     svc_handler_table_;
00086 
00087   typedef ACE_Hash_Map_Iterator_Ex < ACE_INET_Addr,
00088                                      TAO_UIPMC_Connection_Handler *,
00089                                      ACE_Hash < ACE_INET_Addr >,
00090                                      ACE_Equal_To < ACE_INET_Addr >,
00091                                      ACE_Null_Mutex >
00092     SvcHandlerIterator;
00093 };
00094 
00095 TAO_END_VERSIONED_NAMESPACE_DECL
00096 
00097 #include /**/ "ace/post.h"
00098 
00099 #endif  /* TAO_UIPMC_CONNECTOR_H */

Generated on Thu Nov 9 14:03:34 2006 for TAO_PortableGroup by doxygen 1.3.6