COIOP_Endpoint.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file     COIOP_Endpoint.h
00006  *
00007  *  $Id: COIOP_Endpoint.h 74533 2006-09-26 11:59:32Z johnnyw $
00008  *
00009  *   COIOP implementation of PP Framework Endpoint interface.
00010  *
00011  *  @author  Johnny Willemsen <jwillemsen@remedy.nl>
00012  */
00013 //=============================================================================
00014 
00015 
00016 #ifndef TAO_COIOP_ENDPOINT_H
00017 #define TAO_COIOP_ENDPOINT_H
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/strategies_export.h"
00029 #include "tao/Endpoint.h"
00030 #include "ace/UUID.h"
00031 
00032 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00033 
00034 class TAO_COIOP_Connection_Handler;
00035 
00036 /**
00037  * @class TAO_COIOP_Endpoint
00038  *
00039  * @brief TAO_COIOP_Endpoint
00040  *
00041  * COIOP-specific implementation of PP Framework Endpoint interface.
00042  */
00043 class TAO_Strategies_Export TAO_COIOP_Endpoint : public TAO_Endpoint
00044 {
00045 public:
00046 
00047   friend class TAO_COIOP_Profile;
00048   friend class TAO_SSLIOP_Profile;
00049 
00050   // = Initialization and termination methods.
00051 
00052   /// Default constructor.
00053   TAO_COIOP_Endpoint (void);
00054 
00055   /// Constructor.  This is the most efficient constructor since it
00056   /// does not require any address resolution processing.
00057   TAO_COIOP_Endpoint (const ACE_Utils::UUID& uuid);
00058 
00059   /// Destructor.
00060   ~TAO_COIOP_Endpoint (void);
00061 
00062   /**
00063    * @name TAO_Endpoint Methods
00064    *
00065    * Please check the documentation in Endpoint.h for details.
00066    */
00067   //@{
00068   virtual TAO_Endpoint *next (void);
00069   virtual int addr_to_string (char *buffer, size_t length);
00070   virtual TAO_Endpoint *duplicate (void);
00071 
00072   /// Return true if this endpoint is equivalent to <other_endpoint>.  Two
00073   /// endpoints are equivalent iff their port and host are the same.
00074   CORBA::Boolean is_equivalent (const TAO_Endpoint *other_endpoint);
00075 
00076   /// Return a hash value for this object.
00077   CORBA::ULong hash (void);
00078   //@}
00079 
00080   // = COIOP_Endpoint-specific methods.
00081 
00082   /// Return a pointer to the host string.  This object maintains
00083   /// ownership of this string.
00084   const ACE_Utils::UUID& uuid (void) const;
00085 
00086 private:
00087   /// UUID uniquely identifying this COIOP endpoint
00088   mutable ACE_Utils::UUID uuid_;
00089 
00090   /// COIOP Endpoints can be stringed into a list.  Return the next
00091   /// endpoint in the list, if any.
00092   TAO_COIOP_Endpoint *next_;
00093 };
00094 
00095 TAO_END_VERSIONED_NAMESPACE_DECL
00096 
00097 #if defined (__ACE_INLINE__)
00098 # include "tao/Strategies/COIOP_Endpoint.inl"
00099 #endif /* __ACE_INLINE__ */
00100 
00101 #endif /* TAO_HAS_COIOP && TAO_HAS_COIOP != 0 */
00102 
00103 #include /**/ "ace/post.h"
00104 #endif  /* TAO_COIOP_PROFILE_H */

Generated on Tue Feb 2 17:47:18 2010 for TAO_Strategies by  doxygen 1.4.7