POAManagerFactory.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file    POAManagerFactory.h
00006  *
00007  *  $Id: POAManagerFactory.h 81429 2008-04-24 18:49:54Z johnnyw $
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 (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 ::CORBA::LocalObject
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 /* _MSC_VER */
00079 
00080 #include /**/ "ace/post.h"
00081 #endif /* TAO_POAMANAGERFACTORY_H */

Generated on Tue Feb 2 17:40:54 2010 for TAO_PortableServer by  doxygen 1.4.7