SL3_ObjectCredentialsPolicy.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  * @file SL3_ObjectCredentialsPolicy.h
00006  *
00007  * SL3_ObjectCredentialsPolicy.h,v 1.5 2005/11/16 07:53:25 ossama Exp
00008  *
00009  * @author Ossama Othman <ossama@dre.vanderbilt.edu>
00010  */
00011 //=============================================================================
00012 
00013 
00014 #ifndef TAO_SL3_OBJECT_CREDENTIALS_POLICY_H
00015 #define TAO_SL3_OBJECT_CREDENTIALS_POLICY_H
00016 
00017 #include /**/ "ace/pre.h"
00018 #include "orbsvcs/Security/security_export.h"
00019 
00020 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00021 # pragma once
00022 #endif /* ACE_LACKS_PRAGMA_ONCE */
00023 
00024 #include "orbsvcs/SecurityLevel3C.h"
00025 
00026 #include "tao/LocalObject.h"
00027 
00028 #if defined(_MSC_VER)
00029 #pragma warning(push)
00030 #pragma warning(disable:4250)
00031 #endif /* _MSC_VER */
00032 
00033 
00034 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00035 
00036 namespace TAO
00037 {
00038   namespace SL3
00039   {
00040     /**
00041      * @class ObjectCredentialsPolicy
00042      *
00043      * @brief POA-specific Policy containing server's "own"
00044      *        credentials.
00045      *
00046      * This policy may be passed in the PolicyList argument of
00047      * PortableServer::POA::create_POA() method.  Targets under that
00048      * POA will have the credentials contained within this Policy
00049      * associated with them.
00050      */
00051     class ObjectCredentialsPolicy
00052       : public virtual SecurityLevel3::ObjectCredentialsPolicy,
00053         public virtual TAO_Local_RefCounted_Object
00054     {
00055     public:
00056 
00057       /// Constructor
00058       ObjectCredentialsPolicy (
00059         const SecurityLevel3::OwnCredentialsList & creds);
00060 
00061       /**
00062        * @name SecurityLevel3::ObjectCredentialsPolicy Methods
00063        *
00064        * Methods required by the
00065        * SecurityLevel3::ObjectCredentialsPolicy interface.
00066        */
00067       //@{
00068       virtual SecurityLevel3::OwnCredentialsList * creds_list (
00069           ACE_ENV_SINGLE_ARG_DECL)
00070         ACE_THROW_SPEC ((CORBA::SystemException));
00071 
00072       virtual CORBA::PolicyType policy_type (ACE_ENV_SINGLE_ARG_DECL)
00073         ACE_THROW_SPEC ((CORBA::SystemException));
00074 
00075       virtual CORBA::Policy_ptr copy (ACE_ENV_SINGLE_ARG_DECL)
00076         ACE_THROW_SPEC ((CORBA::SystemException));
00077 
00078       virtual void destroy (ACE_ENV_SINGLE_ARG_DECL)
00079         ACE_THROW_SPEC ((CORBA::SystemException));
00080       //@}
00081 
00082     protected:
00083 
00084       /// Destructor
00085       /**
00086        * Protected destructor to enforce proper memory management
00087        * through the reference counting mechanism.
00088        */
00089       ~ObjectCredentialsPolicy (void);
00090 
00091     private:
00092 
00093       /// List of POA-specific OwnCredentials.
00094       SecurityLevel3::OwnCredentialsList creds_list_;
00095 
00096     };
00097 
00098   } // End SL3 namespace
00099 
00100 }  // End TAO namespace
00101 
00102 TAO_END_VERSIONED_NAMESPACE_DECL
00103 
00104 #if defined(_MSC_VER)
00105 #pragma warning(pop)
00106 #endif /* _MSC_VER */
00107 
00108 #include /**/ "ace/post.h"
00109 
00110 #endif  /* TAO_SL3_OBJECT_CREDENTIALS_POLICY_H */

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