3 //=============================================================================
7 * @author Yan Dai (dai_y@ociweb.com)
9 //=============================================================================
14 #include /**/ "ace/pre.h"
16 #include "tao/CSD_Framework/CSD_FW_Export.h"
18 #if !defined (ACE_LACKS_PRAGMA_ONCE)
20 #endif /* ACE_LACKS_PRAGMA_ONCE */
22 #include "tao/PortableServer/Regular_POA.h"
23 #include "tao/CSD_Framework/CSD_Strategy_Proxy.h"
25 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
30 * @brief Implementation of the CSD_Framework::POA interface.
32 * Implementation of the CSD_Framework::POA interface.
34 class TAO_CSD_FW_Export TAO_CSD_POA
35 : public virtual CSD_Framework::POA
,
36 public virtual TAO_Regular_POA
40 TAO_CSD_POA (const String
&name
,
41 PortableServer::POAManager_ptr poa_manager
,
42 const TAO_POA_Policy_Set
&policies
,
45 TAO_SYNCH_MUTEX
&thread_lock
,
46 TAO_ORB_Core
&orb_core
,
47 TAO_Object_Adapter
*object_adapter
);
50 virtual ~TAO_CSD_POA ();
52 /// Pass the Strategy object reference to the CSD poa.
54 void set_csd_strategy (::CSD_Framework::Strategy_ptr s
);
56 /// Hook - The POA has been (or is being) activated.
57 virtual void poa_activated_hook ();
59 /// Hook - The POA has been deactivated.
60 virtual void poa_deactivated_hook ();
62 /// Hook - A servant has been activated.
63 virtual void servant_activated_hook (PortableServer::Servant servant
,
64 const PortableServer::ObjectId
& oid
);
66 /// Hook - A servant has been deactivated.
67 virtual void servant_deactivated_hook (PortableServer::Servant servant
,
68 const PortableServer::ObjectId
& oid
);
70 /// Method for creating new CSD POA.
71 TAO_Root_POA
* new_POA (const String
&name
,
72 PortableServer::POAManager_ptr poa_manager
,
73 const TAO_POA_Policy_Set
&policies
,
76 TAO_SYNCH_MUTEX
&thread_lock
,
77 TAO_ORB_Core
&orb_core
,
78 TAO_Object_Adapter
*object_adapter
);
80 /// Servant Dispatching Strategy proxy accessor.
81 TAO::CSD::Strategy_Proxy
&
82 servant_dispatching_strategy_proxy () const;
85 TAO::CSD::Strategy_Proxy
* sds_proxy_
;
88 TAO_END_VERSIONED_NAMESPACE_DECL
91 #if defined (__ACE_INLINE__)
92 # include "tao/CSD_Framework/CSD_POA.inl"
93 #endif /* __ACE_INLINE__ */
95 #include /**/ "ace/post.h"
97 #endif /* TAO_CSD_POA_H */