00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file SL3_ContextEstablishmentPolicy.h 00006 * 00007 * $Id: SL3_ContextEstablishmentPolicy.h 77001 2007-02-12 07:54:49Z johnnyw $ 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 00070 virtual SecurityLevel3::OwnCredentialsList * creds_list (); 00071 00072 virtual SecurityLevel3::FeatureDirective use_client_auth (); 00073 00074 virtual SecurityLevel3::FeatureDirective use_target_auth (); 00075 00076 virtual SecurityLevel3::FeatureDirective use_confidentiality (); 00077 00078 virtual SecurityLevel3::FeatureDirective use_integrity (); 00079 00080 virtual CORBA::PolicyType policy_type (void); 00081 00082 virtual CORBA::Policy_ptr copy (void); 00083 00084 virtual void destroy (void); 00085 //@} 00086 00087 protected: 00088 00089 /// Destructor 00090 /** 00091 * Protected destructor to enforce proper memory management 00092 * through the reference counting mechanism. 00093 */ 00094 ~ContextEstablishmentPolicy (void); 00095 00096 private: 00097 00098 SecurityLevel3::CredsDirective creds_directive_; 00099 SecurityLevel3::OwnCredentialsList creds_list_; 00100 SecurityLevel3::FeatureDirective use_client_auth_; 00101 SecurityLevel3::FeatureDirective use_target_auth_; 00102 SecurityLevel3::FeatureDirective use_confidentiality_; 00103 SecurityLevel3::FeatureDirective use_integrity_; 00104 00105 }; 00106 00107 } // End SL3 namespace 00108 00109 } // End TAO namespace 00110 00111 TAO_END_VERSIONED_NAMESPACE_DECL 00112 00113 #if defined(_MSC_VER) 00114 #pragma warning(pop) 00115 #endif /* _MSC_VER */ 00116 00117 #include /**/ "ace/post.h" 00118 00119 #endif /* TAO_SL3_CONTEXT_ESTABLISHMENT_POLICY_H */