00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
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
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
00031
00032 #if defined(_MSC_VER)
00033 #pragma warning(push)
00034 #pragma warning(disable:4250)
00035 #endif
00036
00037 #if (TAO_HAS_MINIMUM_POA == 0) && !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
00054 virtual ::PortableServer::POAManagerFactory::POAManagerSeq * list (void);
00055
00056 virtual ::PortableServer::POAManager_ptr find (const char * id);
00057
00058 void remove_all_poamanagers (void);
00059
00060 int remove_poamanager (::PortableServer::POAManager_ptr poamanager);
00061
00062 int register_poamanager (::PortableServer::POAManager_ptr poamanager);
00063
00064 private:
00065 TAO_Object_Adapter &object_adapter_;
00066
00067 typedef ACE_Unbounded_Set < ::PortableServer::POAManager_ptr> POAMANAGERSET;
00068
00069 POAMANAGERSET poamanager_set_;
00070 };
00071
00072 TAO_END_VERSIONED_NAMESPACE_DECL
00073
00074 #endif
00075
00076 #if defined(_MSC_VER)
00077 #pragma warning(pop)
00078 #endif
00079
00080 #include "ace/post.h"
00081 #endif