SL3_SecurityCurrent_Impl.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 // ===================================================================
00004 /**
00005  *  @file SL3_SecurityCurrent_Impl.h
00006  *
00007  *  SL3_SecurityCurrent_Impl.h,v 1.5 2006/03/14 06:14:35 jtc Exp
00008  *
00009  *  @author Ossama Othman <ossama@dre.vanderbilt.edu>
00010  */
00011 // ===================================================================
00012 
00013 #ifndef TAO_SL3_SECURITY_CURRENT_IMPL_H
00014 #define TAO_SL3_SECURITY_CURRENT_IMPL_H
00015 
00016 #include /**/ "ace/pre.h"
00017 
00018 #include "ace/config-all.h"
00019 
00020 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00021 # pragma once
00022 #endif /* ACE_LACKS_PRAGMA_ONCE */
00023 
00024 #include "orbsvcs/Security/security_export.h"
00025 #include "orbsvcs/SecurityLevel3C.h"
00026 
00027 
00028 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00029 
00030 namespace TAO
00031 {
00032   namespace SL3
00033   {
00034     /**
00035      * @class SecurityCurrent_Impl
00036      *
00037      * @brief Base class for the TSS portion of any underlying
00038      *        security mechanism.
00039      *
00040      * This class provides the same interface as the
00041      * SecurityLevel3::SecurityCurrent object.  However, it is not
00042      * derived from that interface since we need to explicitly avoid
00043      * virtual inheritance so that it is safe to store subclasses in a
00044      * "void * *" and later cast that pointer back to the subclass
00045      * pointer type.
00046      */
00047     class TAO_Security_Export SecurityCurrent_Impl
00048     {
00049     public:
00050 
00051       /// Destructor.
00052       virtual ~SecurityCurrent_Impl (void);
00053 
00054       /**
00055        * @name SecurityLevel3::Current Methods
00056        *
00057        * These methods are founds in the SecurityLevel3::Current
00058        * interface.
00059        */
00060       //@{
00061       /// Return the Credentials received from the client associate with
00062       /// the current request.
00063       virtual SecurityLevel3::ClientCredentials_ptr client_credentials (
00064           ACE_ENV_SINGLE_ARG_DECL)
00065         ACE_THROW_SPEC ((CORBA::SystemException)) = 0;
00066 
00067       /// Is the current request local?
00068       virtual CORBA::Boolean request_is_local (
00069           ACE_ENV_SINGLE_ARG_DECL)
00070         ACE_THROW_SPEC ((CORBA::SystemException)) = 0;
00071       //@}
00072 
00073       /// Return the unique tag that identifies the concrete subclass.
00074       virtual CORBA::ULong tag (void) const = 0;
00075 
00076     };
00077 
00078   }  // End Security namespace.
00079 }  // End TAO namespace.
00080 
00081 TAO_END_VERSIONED_NAMESPACE_DECL
00082 
00083 #include /**/ "ace/post.h"
00084 
00085 #endif  /* TAO_SL3_SECURITY_CURRENT_IMPL_H */

Generated on Thu Nov 9 13:50:48 2006 for TAO_Security by doxygen 1.3.6