Security_ORBInitializer.h

Go to the documentation of this file.
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 */

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