Security_Current_Impl.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 // ===================================================================
00004 /**
00005  *  @file   Security_Current_Impl.h
00006  *
00007  *  Security_Current_Impl.h,v 1.11 2006/03/14 06:14:35 jtc Exp
00008  *
00009  *  @author Ossama Othman <ossama@uci.edu>
00010  */
00011 // ===================================================================
00012 
00013 #ifndef TAO_SECURITY_CURRENT_IMPL_H
00014 #define TAO_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/SecurityLevel2C.h"
00026 
00027 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00028 
00029 namespace TAO
00030 {
00031   namespace Security
00032   {
00033     /**
00034      * @class Current_Impl
00035      *
00036      * @brief Base class for the TSS portion of any underlying
00037      *        security mechanism.
00038      *
00039      * This class provides the same interface as the
00040      * SecurityLevel3::Current object.  However, it is not derived
00041      * from that interface since we need to explicitly avoid virtual
00042      * inheritance so that it is safe to store subclasses in a "void
00043      * *" and later cast that pointer back to the subclass pointer
00044      * type.
00045      */
00046     class TAO_Security_Export Current_Impl
00047     {
00048     public:
00049 
00050       /// Destructor.
00051       virtual ~Current_Impl (void);
00052 
00053       /**
00054        * @name SecurityLevel1::Current Methods
00055        *
00056        * These methods are founds in the SecurityLevel1::Current
00057        * interface.
00058        */
00059       //@{
00060       /// Return the security attributes corresponding to the types in
00061       /// the given attribute type list associated with the current
00062       /// request.
00063       virtual ::Security::AttributeList * get_attributes (
00064           const ::Security::AttributeTypeList & attributes
00065           ACE_ENV_ARG_DECL)
00066         ACE_THROW_SPEC ((CORBA::SystemException)) = 0;
00067       //@}
00068 
00069       /**
00070        * @name SecurityLevel2::Current Methods
00071        *
00072        * These methods are founds in the SecurityLevel2::Current
00073        * interface.
00074        */
00075       //@{
00076       /// Return the Credentials received from the client associate with
00077       /// the current request.
00078       virtual SecurityLevel2::ReceivedCredentials_ptr received_credentials (
00079           ACE_ENV_SINGLE_ARG_DECL)
00080         ACE_THROW_SPEC ((CORBA::SystemException)) = 0;
00081       //@}
00082 
00083       /// Return the unique tag that identifies the concrete subclass.
00084       virtual CORBA::ULong tag (void) const = 0;
00085 
00086     };
00087 
00088   }  // End Security namespace.
00089 }  // End TAO namespace.
00090 
00091 TAO_END_VERSIONED_NAMESPACE_DECL
00092 
00093 #include /**/ "ace/post.h"
00094 
00095 #endif  /* TAO_SECURITY_CURRENT_IMPL_H */

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