IIOP_Current_Impl.h

Go to the documentation of this file.
00001 /**
00002  * @file IIOP_Current_Impl.h
00003  *
00004  * @brief Provide implementation for the IIOPTraits interface
00005  *
00006  * $Id: IIOP_Current_Impl.h 76995 2007-02-11 12:51:42Z johnnyw $
00007  *
00008  * @author Iliyan Jeliazkov <iliyan@ociweb.com>
00009  */
00010 
00011 #ifndef IIOP_CURRENT_IMPL_H
00012 #define IIOP_CURRENT_IMPL_H
00013 
00014 #include /**/ "ace/pre.h"
00015 
00016 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00017 # pragma once
00018 #endif /* ACE_LACKS_PRAGMA_ONCE */
00019 
00020 #if TAO_HAS_TRANSPORT_CURRENT == 1
00021 
00022 #include "tao/TransportCurrent/TC_IIOPC.h"
00023 #include "tao/TransportCurrent/Current_Impl.h"
00024 
00025 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00026 
00027 class TAO_Transport;
00028 class TAO_IIOP_Connection_Handler;
00029 
00030 namespace TAO
00031 {
00032   namespace Transport
00033   {
00034 
00035     /**
00036      * @class IIOP_Current_Impl
00037      *
00038      * @brief Implementation of the TAO::Transport::IIOPCurrent
00039      * interface.
00040      *
00041      * IIOP_Current_Impl is useful for obtaining information about the
00042      * IIOP Transport, associated with the calling thread.
00043      */
00044     class TAO_Transport_Current_Export IIOP_Current_Impl
00045       : public virtual IIOP::Current
00046       , public virtual Current_Impl
00047       {
00048       public:
00049 
00050         /// Constructor.
00051         IIOP_Current_Impl (TAO_ORB_Core* core, size_t tss_slot_id);
00052 
00053         //@{
00054         virtual ::CORBA::Long id (void);
00055 
00056         virtual ::SSLIOP::Current_ptr ssliop_current (void);
00057 
00058         virtual ::CORBA::Long remote_port (void);
00059 
00060         virtual char* remote_host (void);
00061 
00062         virtual ::CORBA::Long local_port (void);
00063 
00064         virtual char* local_host (void);
00065         //@}
00066 
00067 
00068       protected:
00069 
00070         /// Destructor
00071         /**
00072          * Protected destructor to enforce the fact this class is reference
00073          * counted, and should not be destroyed using delete() by anything
00074          * other than the reference counting mechanism.
00075          */
00076         virtual ~IIOP_Current_Impl (void);
00077 
00078       private:
00079 
00080         /// Returns the IIOP connection handler associated with the
00081         /// Transport. Will throw NO_IMPLEMENT if the (selected) transport
00082         /// () == 0, or if transport->connection_handler () == 0. Will
00083         /// throw NoContext, if no transport has been selected yet.
00084         TAO_IIOP_Connection_Handler* handler (void);
00085 
00086       private:
00087 
00088         /// Prevent copying through the copy constructor and
00089         /// assignment operator.
00090         //@{
00091         IIOP_Current_Impl (const IIOP_Current_Impl &);
00092         void operator= (const IIOP_Current_Impl &);
00093         //@}
00094 
00095       };
00096   }
00097 
00098 }
00099 
00100 TAO_END_VERSIONED_NAMESPACE_DECL
00101 
00102 #endif /* TAO_HAS_TRANSPORT_CURRENT == 1 */
00103 
00104 #include /**/ "ace/post.h"
00105 
00106 #endif /* IIOP_CURRENT_IMPL_H */

Generated on Sun Jan 27 13:32:20 2008 for TAO_TransportCurrent by doxygen 1.3.6