00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file SL3_ContextEstablishmentPolicy.h 00006 * 00007 * SL3_ContextEstablishmentPolicy.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_CONTEXT_ESTABLISHMENT_POLICY_H 00015 #define TAO_SL3_CONTEXT_ESTABLISHMENT_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 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00034 00035 namespace TAO 00036 { 00037 namespace SL3 00038 { 00039 /** 00040 * @class ContextEstablishmentPolicy 00041 * 00042 * @brief 00043 * 00044 * 00045 */ 00046 class ContextEstablishmentPolicy 00047 : public virtual SecurityLevel3::ContextEstablishmentPolicy, 00048 public virtual TAO_Local_RefCounted_Object 00049 { 00050 public: 00051 00052 /// Constructor 00053 ContextEstablishmentPolicy ( 00054 SecurityLevel3::CredsDirective creds_directive, 00055 const SecurityLevel3::OwnCredentialsList & creds_list, 00056 SecurityLevel3::FeatureDirective use_client_auth, 00057 SecurityLevel3::FeatureDirective use_target_auth, 00058 SecurityLevel3::FeatureDirective use_confidentiality, 00059 SecurityLevel3::FeatureDirective use_integrity); 00060 00061 /** 00062 * @name SecurityLevel3::ContextEstablishmentPolicy Methods 00063 * 00064 * Methods required by the 00065 * SecurityLevel3::ContextEstablishmentPolicy interface. 00066 */ 00067 //@{ 00068 virtual SecurityLevel3::CredsDirective creds_directive ( 00069 ACE_ENV_SINGLE_ARG_DECL) 00070 ACE_THROW_SPEC ((CORBA::SystemException)); 00071 00072 virtual SecurityLevel3::OwnCredentialsList * creds_list ( 00073 ACE_ENV_SINGLE_ARG_DECL) 00074 ACE_THROW_SPEC ((CORBA::SystemException)); 00075 00076 virtual SecurityLevel3::FeatureDirective use_client_auth ( 00077 ACE_ENV_SINGLE_ARG_DECL) 00078 ACE_THROW_SPEC ((CORBA::SystemException)); 00079 00080 virtual SecurityLevel3::FeatureDirective use_target_auth ( 00081 ACE_ENV_SINGLE_ARG_DECL) 00082 ACE_THROW_SPEC ((CORBA::SystemException)); 00083 00084 virtual SecurityLevel3::FeatureDirective use_confidentiality ( 00085 ACE_ENV_SINGLE_ARG_DECL) 00086 ACE_THROW_SPEC ((CORBA::SystemException)); 00087 00088 virtual SecurityLevel3::FeatureDirective use_integrity ( 00089 ACE_ENV_SINGLE_ARG_DECL) 00090 ACE_THROW_SPEC ((CORBA::SystemException)); 00091 00092 virtual CORBA::PolicyType policy_type (ACE_ENV_SINGLE_ARG_DECL) 00093 ACE_THROW_SPEC ((CORBA::SystemException)); 00094 00095 virtual CORBA::Policy_ptr copy (ACE_ENV_SINGLE_ARG_DECL) 00096 ACE_THROW_SPEC ((CORBA::SystemException)); 00097 00098 virtual void destroy (ACE_ENV_SINGLE_ARG_DECL) 00099 ACE_THROW_SPEC ((CORBA::SystemException)); 00100 //@} 00101 00102 protected: 00103 00104 /// Destructor 00105 /** 00106 * Protected destructor to enforce proper memory management 00107 * through the reference counting mechanism. 00108 */ 00109 ~ContextEstablishmentPolicy (void); 00110 00111 private: 00112 00113 SecurityLevel3::CredsDirective creds_directive_; 00114 SecurityLevel3::OwnCredentialsList creds_list_; 00115 SecurityLevel3::FeatureDirective use_client_auth_; 00116 SecurityLevel3::FeatureDirective use_target_auth_; 00117 SecurityLevel3::FeatureDirective use_confidentiality_; 00118 SecurityLevel3::FeatureDirective use_integrity_; 00119 00120 }; 00121 00122 } // End SL3 namespace 00123 00124 } // End TAO namespace 00125 00126 TAO_END_VERSIONED_NAMESPACE_DECL 00127 00128 #if defined(_MSC_VER) 00129 #pragma warning(pop) 00130 #endif /* _MSC_VER */ 00131 00132 #include /**/ "ace/post.h" 00133 00134 #endif /* TAO_SL3_CONTEXT_ESTABLISHMENT_POLICY_H */