3 //=============================================================================
5 * @file POAManagerFactory.h
9 * @author Johnny Willemsen <jwillemsen@remedy.nl>
11 //=============================================================================
13 #ifndef TAO_POAMANAGERFACTORY_H
14 #define TAO_POAMANAGERFACTORY_H
15 #include /**/ "ace/pre.h"
17 #include "tao/PortableServer/portableserver_export.h"
19 #if !defined (ACE_LACKS_PRAGMA_ONCE)
21 #endif /* ACE_LACKS_PRAGMA_ONCE */
23 #include "tao/PortableServer/POAManagerFactoryC.h"
24 #include "tao/PortableServer/Object_Adapter.h"
25 #include "tao/LocalObject.h"
26 #include "ace/Unbounded_Set.h"
28 // This is to remove "inherits via dominance" warnings from MSVC.
29 // MSVC is being a little too paranoid.
32 #pragma warning(disable:4250)
35 #if (TAO_HAS_MINIMUM_POA == 0) && !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO)
37 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
39 class TAO_PortableServer_Export TAO_POAManager_Factory
:
40 public ::PortableServer::POAManagerFactory
,
41 public ::CORBA::LocalObject
44 TAO_POAManager_Factory (TAO_Object_Adapter
&object_adapter
);
46 virtual ~TAO_POAManager_Factory ();
48 virtual ::PortableServer::POAManager_ptr
create_POAManager (
50 const ::CORBA::PolicyList
& policies
);
52 virtual ::PortableServer::POAManagerFactory::POAManagerSeq
* list ();
54 virtual ::PortableServer::POAManager_ptr
find (const char * id
);
56 void remove_all_poamanagers ();
58 int remove_poamanager (::PortableServer::POAManager_ptr poamanager
);
60 int register_poamanager (::PortableServer::POAManager_ptr poamanager
);
63 TAO_Object_Adapter
&object_adapter_
;
65 typedef ACE_Unbounded_Set
< ::PortableServer::POAManager_ptr
> POAMANAGERSET
;
67 POAMANAGERSET poamanager_set_
;
70 TAO_END_VERSIONED_NAMESPACE_DECL
78 #include /**/ "ace/post.h"
79 #endif /* TAO_POAMANAGERFACTORY_H */