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 */