POAManagerFactory.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file    POAManagerFactory.h
00006  *
00007  *  POAManagerFactory.h,v 1.3 2006/06/20 06:31:05 jwillemsen Exp
00008  *
00009  *   POAManagerFactory
00010  *
00011  *  @author  Johnny Willemsen  <jwillemsen@remedy.nl>
00012  */
00013 //=============================================================================
00014 
00015 #ifndef TAO_POAMANAGERFACTORY_H
00016 #define TAO_POAMANAGERFACTORY_H
00017 #include /**/ "ace/pre.h"
00018 
00019 #include "tao/PortableServer/portableserver_export.h"
00020 
00021 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00022 # pragma once
00023 #endif /* ACE_LACKS_PRAGMA_ONCE */
00024 
00025 #include "tao/PortableServer/POAManagerFactoryC.h"
00026 #include "tao/PortableServer/Object_Adapter.h"
00027 #include "tao/LocalObject.h"
00028 #include "ace/Unbounded_Set.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 #if !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO)
00038 
00039 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00040 
00041 class TAO_PortableServer_Export TAO_POAManager_Factory :
00042   public ::PortableServer::POAManagerFactory,
00043   public TAO_Local_RefCounted_Object
00044 {
00045 public:
00046   TAO_POAManager_Factory (TAO_Object_Adapter &object_adapter);
00047 
00048   virtual ~TAO_POAManager_Factory (void);
00049 
00050   virtual ::PortableServer::POAManager_ptr create_POAManager (
00051       const char * id,
00052       const ::CORBA::PolicyList & policies
00053       ACE_ENV_ARG_DECL)
00054     ACE_THROW_SPEC ((CORBA::SystemException,
00055                       ::PortableServer::POAManagerFactory::ManagerAlreadyExists,
00056                       ::CORBA::PolicyError));
00057 
00058   virtual ::PortableServer::POAManagerFactory::POAManagerSeq * list (
00059       ACE_ENV_SINGLE_ARG_DECL)
00060     ACE_THROW_SPEC ((CORBA::SystemException));
00061 
00062   virtual ::PortableServer::POAManager_ptr find (
00063       const char * id ACE_ENV_ARG_DECL)
00064   ACE_THROW_SPEC ((CORBA::SystemException));
00065 
00066   int remove_poamanager (::PortableServer::POAManager_ptr poamanager);
00067 
00068   int register_poamanager (::PortableServer::POAManager_ptr poamanager);
00069 
00070 private:
00071   TAO_Object_Adapter &object_adapter_;
00072 
00073   typedef ACE_Unbounded_Set < ::PortableServer::POAManager_ptr> POAMANAGERSET;
00074 
00075   POAMANAGERSET poamanager_set_;
00076 };
00077 
00078 TAO_END_VERSIONED_NAMESPACE_DECL
00079 
00080 #endif
00081 
00082 #if defined(_MSC_VER)
00083 #pragma warning(pop)
00084 #endif /* _MSC_VER */
00085 
00086 #include /**/ "ace/post.h"
00087 #endif /* TAO_POAMANAGERFACTORY_H */

Generated on Thu Nov 9 12:40:40 2006 for TAO_PortableServer by doxygen 1.3.6