3 //=============================================================================
7 * Header file for CORBA's ORB type.
9 * @author Irfan Pyarali <irfan@cs.wustl.edu>
11 //=============================================================================
13 #ifndef TAO_REGULAR_POA_H
14 #define TAO_REGULAR_POA_H
16 #include /**/ "ace/pre.h"
18 #include "tao/PortableServer/portableserver_export.h"
20 #if !defined (ACE_LACKS_PRAGMA_ONCE)
22 #endif /* ACE_LACKS_PRAGMA_ONCE */
24 #include "tao/PortableServer/Root_POA.h"
26 #if !defined (CORBA_E_MICRO)
28 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
31 * @class TAO_Regular_POA
33 * @brief Implementation of the PortableServer::POA interface.
35 * Implementation of the PortableServer::POA interface.
37 class TAO_PortableServer_Export TAO_Regular_POA
41 TAO_Regular_POA (const String
&name
,
42 PortableServer::POAManager_ptr poa_manager
,
43 const TAO_POA_Policy_Set
&policies
,
46 TAO_SYNCH_MUTEX
&thread_lock
,
47 TAO_ORB_Core
&orb_core
,
48 TAO_Object_Adapter
*object_adapter
);
50 ~TAO_Regular_POA () override
= default;
52 PortableServer::POA_ptr
the_parent () override
;
55 void remove_from_parent_i () override
;
57 CORBA::Boolean
root () const override
;
59 char root_key_type () override
;
61 /// The parent of this POA, be aware that in case this pointer is nill,
62 /// we are a parent. This can be achieved by deriving from this Regular_POA
63 /// and pass a nill pointer as parent with the constructor.
64 TAO_Root_POA
*parent_
;
67 TAO_END_VERSIONED_NAMESPACE_DECL
71 // ****************************************************************
73 #if defined (__ACE_INLINE__)
74 # include "tao/PortableServer/Regular_POA.inl"
75 #endif /* __ACE_INLINE__ */
77 #include /**/ "ace/post.h"
79 #endif /* TAO_REGULAR_POA_H */