00001 // -*- C++ -*- 00002 // 00003 // Security_ORBInitializer.h,v 1.11 2006/03/14 06:14:35 jtc Exp 00004 00005 // ============================================================================ 00006 // 00007 // = LIBRARY 00008 // TAO 00009 // 00010 // = FILENAME 00011 // Security_ORBInitializer.h 00012 // 00013 // = AUTHOR 00014 // Ossama Othman <ossama@uci.edu> 00015 // 00016 // ============================================================================ 00017 00018 #ifndef TAO_SECURITY_ORB_INITIALIZER_H 00019 #define TAO_SECURITY_ORB_INITIALIZER_H 00020 00021 #include /**/ "ace/pre.h" 00022 00023 #include "orbsvcs/Security/security_export.h" 00024 00025 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00026 # pragma once 00027 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00028 00029 #include "tao/PI/PI.h" 00030 #include "tao/LocalObject.h" 00031 00032 #include "orbsvcs/Security/Security_PolicyFactory.h" 00033 00034 // This is to remove "inherits via dominance" warnings from MSVC. 00035 // MSVC is being a little too paranoid. 00036 #if defined(_MSC_VER) 00037 #pragma warning(push) 00038 #pragma warning(disable:4250) 00039 #endif /* _MSC_VER */ 00040 00041 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00042 00043 /// Security ORB initializer. 00044 namespace TAO 00045 { 00046 namespace Security 00047 { 00048 00049 /** 00050 * @class ORBInitializer 00051 * 00052 * @brief ORBInitializer that configures CORBA Security features 00053 * into an ORB. 00054 * 00055 * This ORBInitializer configures CORBA Security features into an 00056 * ORB, such as CSIv2, security objects, security policy 00057 * factories, etc, into an ORB. 00058 */ 00059 class TAO_Security_Export ORBInitializer 00060 : public virtual PortableInterceptor::ORBInitializer, 00061 public virtual TAO_Local_RefCounted_Object 00062 { 00063 public: 00064 00065 /** 00066 * @name PortableInterceptor::ORBInitializer Methods. 00067 * 00068 * Methods required by the PortableInterceptor::ORBInitializer 00069 * interface. 00070 */ 00071 //@{ 00072 virtual void pre_init (PortableInterceptor::ORBInitInfo_ptr info 00073 ACE_ENV_ARG_DECL_WITH_DEFAULTS) 00074 ACE_THROW_SPEC ((CORBA::SystemException)); 00075 00076 virtual void post_init (PortableInterceptor::ORBInitInfo_ptr info 00077 ACE_ENV_ARG_DECL_WITH_DEFAULTS) 00078 ACE_THROW_SPEC ((CORBA::SystemException)); 00079 //@} 00080 00081 private: 00082 00083 /// Register Security policy factories. 00084 void register_policy_factories (PortableInterceptor::ORBInitInfo_ptr info 00085 ACE_ENV_ARG_DECL); 00086 00087 private: 00088 00089 /// PolicyFactory that is used to create all security related 00090 /// policies capable of being created via ORB::create_policy(). 00091 PortableInterceptor::PolicyFactory_var policy_factory_; 00092 00093 }; 00094 00095 } // End Security namespace 00096 } // End TAO namespace 00097 00098 TAO_END_VERSIONED_NAMESPACE_DECL 00099 00100 #if defined(_MSC_VER) 00101 #pragma warning(pop) 00102 #endif /* _MSC_VER */ 00103 00104 #include /**/ "ace/post.h" 00105 00106 #endif /* TAO_SECURITY_ORB_INITIALIZER_H */