Regular_POA.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file    Regular_POA.h
00006  *
00007  *  Regular_POA.h,v 1.5 2006/04/26 13:22:59 mesnier_p Exp
00008  *
00009  *  Header file for CORBA's ORB type.
00010  *
00011  *  @author  Irfan Pyarali <irfan@cs.wustl.edu>
00012  */
00013 //=============================================================================
00014 
00015 #ifndef TAO_REGULAR_POA_H
00016 #define TAO_REGULAR_POA_H
00017 
00018 #include /**/ "ace/pre.h"
00019 
00020 #include "tao/PortableServer/portableserver_export.h"
00021 
00022 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00023 # pragma once
00024 #endif /* ACE_LACKS_PRAGMA_ONCE */
00025 
00026 #include "tao/PortableServer/Root_POA.h"
00027 
00028 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00029 
00030 /**
00031  * @class TAO_Regular_POA
00032  *
00033  * @brief Implementation of the PortableServer::POA interface.
00034  *
00035  * Implementation of the PortableServer::POA interface.
00036  */
00037 class TAO_PortableServer_Export TAO_Regular_POA
00038   : public TAO_Root_POA
00039 {
00040 public:
00041   TAO_Regular_POA (const String &name,
00042                    PortableServer::POAManager_ptr poa_manager,
00043                    const TAO_POA_Policy_Set &policies,
00044                    TAO_Root_POA *parent,
00045                    ACE_Lock &lock,
00046                    TAO_SYNCH_MUTEX &thread_lock,
00047                    TAO_ORB_Core &orb_core,
00048                    TAO_Object_Adapter *object_adapter
00049                    ACE_ENV_ARG_DECL);
00050 
00051   virtual ~TAO_Regular_POA (void);
00052 
00053   PortableServer::POA_ptr the_parent (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
00054     ACE_THROW_SPEC ((CORBA::SystemException));
00055 
00056 protected:
00057   virtual void remove_from_parent_i (ACE_ENV_SINGLE_ARG_DECL);
00058 
00059   virtual CORBA::Boolean root (void) const;
00060 
00061   virtual char root_key_type (void);
00062 
00063   /// The parent of this POA, be aware that in case this pointer is nill,
00064   /// we are a parent. This can be achieved by deriving from this Regular_POA
00065   /// and pass a nill pointer as parent with the constructor.
00066   TAO_Root_POA *parent_;
00067 };
00068 
00069 TAO_END_VERSIONED_NAMESPACE_DECL
00070 
00071 // ****************************************************************
00072 
00073 #if defined (__ACE_INLINE__)
00074 # include "tao/PortableServer/Regular_POA.inl"
00075 #endif /* __ACE_INLINE__ */
00076 
00077 #include /**/ "ace/post.h"
00078 
00079 #endif /* TAO_REGULAR_POA_H */

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