Security_ORBInitializer.h

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

Generated on Sun Jan 27 16:09:36 2008 for TAO_Security by doxygen 1.3.6