diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Current.h')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Current.h | 299 |
1 files changed, 150 insertions, 149 deletions
diff --git a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Current.h b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Current.h index dcb498ddd4c..1ff1ab76fb4 100644 --- a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Current.h +++ b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Current.h @@ -6,7 +6,7 @@ * * $Id$ * - * @author Ossama Othman <ossama@uci.edu> + * @author Ossama Othman <ossama@dre.vanderbilt.edu> */ // =================================================================== @@ -36,176 +36,177 @@ #endif /* _MSC_VER */ -class TAO_SSLIOP_Current; -class TAO_SSLIOP_Current_var; -typedef TAO_SSLIOP_Current *TAO_SSLIOP_Current_ptr; - - -/** - * @class TAO_SSLIOP_Current - * - * @brief Implementation of the TAO SSLIOP::Current extension. - * - * This object can be used to obtain SSL session related information - * about the current execution context. For example, SSL peer - * certificate chains for the current request can be obtained from - * this object. - */ -class TAO_SSLIOP_Export TAO_SSLIOP_Current - : public SSLIOP::Current, - public TAO_Local_RefCounted_Object +namespace TAO { -public: - - /// Constructor. - TAO_SSLIOP_Current (TAO_ORB_Core *orb_core); - - /// Return the peer certificate associated with the current - /// request. - virtual SSLIOP::ASN_1_Cert * get_peer_certificate ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - SSLIOP::Current::NoContext)); - - /// Return the certificate chain associated with the current - /// execution context. If no SSL session is being used for the - /// request or upcall, then the NoContext exception is raised. - /// - /// On the client side, the chain does include the peer (server) - /// certficate. However, the certificate chain on the server side - /// does NOT contain the peer (client) certificate. - virtual SSLIOP::SSL_Cert * get_peer_certificate_chain ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - SSLIOP::Current::NoContext)); - - /// Returns true if the current execution context is not within a - /// SSL session. This method is mostly useful as an inexpensive - /// means of determining whether or not SSL session state is - /// available. - virtual CORBA::Boolean no_context ( - ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - /// Set the TSS slot ID assigned to this object. - void tss_slot (size_t slot); - - /// Setup the Current. - void setup (TAO_SSLIOP_Current_Impl *&prev_impl, - TAO_SSLIOP_Current_Impl *new_impl, - CORBA::Boolean &setup_done); - - /// Teardown the Current for this request. - void teardown (TAO_SSLIOP_Current_Impl *prev_impl, - CORBA::Boolean &setup_done); - - /** - * @name Downcast and Reference Counting Methods - * - * These are basically the same methods generated by the IDL - * compiler for all IDL interfaces. - */ - //@{ + namespace SSLIOP + { + class Current; + class Current_var; + typedef Current * Current_ptr; + + /** + * @class Current + * + * @brief Implementation of the TAO SSLIOP::Current extension. + * + * This object can be used to obtain SSL session related + * information about the current execution context. For example, + * SSL peer certificate chains for the current request can be + * obtained from this object. + */ + class TAO_SSLIOP_Export Current + : public ::SSLIOP::Current, + public TAO_Local_RefCounted_Object + { + public: + + /// Constructor. + Current (TAO_ORB_Core *orb_core); + + /// Return the peer certificate associated with the current + /// request. + virtual ::SSLIOP::ASN_1_Cert * get_peer_certificate ( + ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + ::SSLIOP::Current::NoContext)); + + /** + * Return the certificate chain associated with the current + * execution context. If no SSL session is being used for the + * request or upcall, then the NoContext exception is raised. + * On the client side, the chain does include the peer (server) + * certficate. However, the certificate chain on the server + * side does NOT contain the peer (client) certificate. + */ + virtual ::SSLIOP::SSL_Cert * get_peer_certificate_chain ( + ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + ::SSLIOP::Current::NoContext)); + + /** + * This method is mostly useful as an inexpensive means of + * determining whether or not SSL session state is available. + * + * @return @c true if the current execution context is not + * within a SSL session. + */ + virtual CORBA::Boolean no_context (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + + /// Set the TSS slot ID assigned to this object. + void tss_slot (size_t slot); + + /// Setup the Current. + void setup (Current_Impl *& prev_impl, + Current_Impl * new_impl, + bool &setup_done); + + /// Teardown the Current for this request. + void teardown (Current_Impl *prev_impl, + bool &setup_done); + + /** + * @name Downcast and Reference Counting Methods + * + * These are basically the same methods generated by the IDL + * compiler for all IDL interfaces. + */ + //@{ #if !defined(__GNUC__) || !defined (ACE_HAS_GNUG_PRE_2_8) - typedef TAO_SSLIOP_Current_ptr _ptr_type; - typedef TAO_SSLIOP_Current_var _var_type; + typedef Current_ptr _ptr_type; + typedef Current_var _var_type; #endif /* ! __GNUC__ || g++ >= 2.8 */ - static int _tao_class_id; + static int _tao_class_id; - // The static operations. - static TAO_SSLIOP_Current_ptr _duplicate (TAO_SSLIOP_Current_ptr obj); + // The static operations. + static Current_ptr _duplicate (Current_ptr obj); - static TAO_SSLIOP_Current_ptr _narrow ( - CORBA::Object_ptr obj - ACE_ENV_ARG_DECL_WITH_DEFAULTS); + static Current_ptr _narrow (CORBA::Object_ptr obj + ACE_ENV_ARG_DECL); - static TAO_SSLIOP_Current_ptr _unchecked_narrow ( - CORBA::Object_ptr obj - ACE_ENV_ARG_DECL_WITH_DEFAULTS); + static Current_ptr _unchecked_narrow (CORBA::Object_ptr obj + ACE_ENV_ARG_DECL); - static TAO_SSLIOP_Current_ptr _nil (void) - { - return (TAO_SSLIOP_Current_ptr)0; - } + static Current_ptr _nil (void) + { + return (Current_ptr)0; + } - virtual const char* _interface_repository_id (void) const; - //@} + virtual const char* _interface_repository_id (void) const; + //@} -protected: + protected: - /// Destructor - /// Protected to force allocation on the heap. - ~TAO_SSLIOP_Current (void); + /// Destructor + ~Current (void); - /// Set the TSS SSLIOP::Current implementation. - int implementation (TAO_SSLIOP_Current_Impl *impl); + /// Set the TSS SSLIOP::Current implementation. + int implementation (Current_Impl *impl); - /// Return the TSS SSLIOP::Current implementation. - TAO_SSLIOP_Current_Impl *implementation (void); + /// Return the TSS SSLIOP::Current implementation. + Current_Impl *implementation (void); -private: + private: - /// Prevent copying through the copy constructor and the assignment - /// operator. - //@{ - ACE_UNIMPLEMENTED_FUNC ( - TAO_SSLIOP_Current (const TAO_SSLIOP_Current &)) - ACE_UNIMPLEMENTED_FUNC (void operator= (const TAO_SSLIOP_Current &)) - //@} + /// Prevent copying through the copy constructor and the assignment + /// operator. + //@{ + ACE_UNIMPLEMENTED_FUNC (Current (const Current &)) + ACE_UNIMPLEMENTED_FUNC (void operator= (const Current &)) + //@} -private: + private: - /// TSS slot assigned to this object. - size_t tss_slot_; + /// TSS slot assigned to this object. + size_t tss_slot_; - /// Pointer to the ORB Core corresponding to the ORB with which this - /// object is registered. - TAO_ORB_Core *orb_core_; + /// Pointer to the ORB Core corresponding to the ORB with which this + /// object is registered. + TAO_ORB_Core *orb_core_; -}; - -class TAO_SSLIOP_Current_var : public TAO_Base_var -{ -public: - TAO_SSLIOP_Current_var (void); // default constructor - TAO_SSLIOP_Current_var (TAO_SSLIOP_Current_ptr p) : ptr_ (p) {} - TAO_SSLIOP_Current_var (const TAO_SSLIOP_Current_var &); // copy constructor - ~TAO_SSLIOP_Current_var (void); // destructor - - TAO_SSLIOP_Current_var &operator= (TAO_SSLIOP_Current_ptr); - TAO_SSLIOP_Current_var &operator= (const TAO_SSLIOP_Current_var &); - TAO_SSLIOP_Current_ptr operator-> (void) const; - - operator const TAO_SSLIOP_Current_ptr &() const; - operator TAO_SSLIOP_Current_ptr &(); - // in, inout, out, _retn - TAO_SSLIOP_Current_ptr in (void) const; - TAO_SSLIOP_Current_ptr &inout (void); - TAO_SSLIOP_Current_ptr &out (void); - TAO_SSLIOP_Current_ptr _retn (void); - TAO_SSLIOP_Current_ptr ptr (void) const; - - // Hooks used by template sequence and object manager classes - // for non-defined forward declared interfaces. - static TAO_SSLIOP_Current_ptr tao_duplicate (TAO_SSLIOP_Current_ptr); - static void tao_release (TAO_SSLIOP_Current_ptr); - static TAO_SSLIOP_Current_ptr tao_nil (void); - static TAO_SSLIOP_Current_ptr tao_narrow ( - CORBA::Object * - ACE_ENV_ARG_DECL_NOT_USED - ); - static CORBA::Object * tao_upcast (void *); - -private: - TAO_SSLIOP_Current_ptr ptr_; - // Unimplemented - prevents widening assignment. - TAO_SSLIOP_Current_var (const TAO_Base_var &rhs); - TAO_SSLIOP_Current_var &operator= (const TAO_Base_var &rhs); -}; + }; + class Current_var : public TAO_Base_var + { + public: + Current_var (void); // default constructor + Current_var (Current_ptr p) : ptr_ (p) {} + Current_var (const Current_var &); // copy constructor + ~Current_var (void); // destructor + + Current_var &operator= (Current_ptr); + Current_var &operator= (const Current_var &); + Current_ptr operator-> (void) const; + + operator const Current_ptr &() const; + operator Current_ptr &(); + // in, inout, out, _retn + Current_ptr in (void) const; + Current_ptr &inout (void); + Current_ptr &out (void); + Current_ptr _retn (void); + Current_ptr ptr (void) const; + + // Hooks used by template sequence and object manager classes + // for non-defined forward declared interfaces. + static Current_ptr tao_duplicate (Current_ptr); + static void tao_release (Current_ptr); + static Current_ptr tao_nil (void); + static Current_ptr tao_narrow (CORBA::Object * + ACE_ENV_ARG_DECL); + static CORBA::Object * tao_upcast (void *); + + private: + Current_ptr ptr_; + // Unimplemented - prevents widening assignment. + Current_var (const TAO_Base_var &rhs); + Current_var &operator= (const TAO_Base_var &rhs); + }; + } // End SSLIOP namespace. +} // End TAO namespace. #if defined (__ACE_INLINE__) # include "SSLIOP_Current.inl" |