Revert "Minor modernization of DynamicAny code"
[ACE_TAO.git] / TAO / tao / CSD_Framework / CSD_POA.h
blob042aa2ab8d7d28ba027bebe987a2988844e47e3c
1 // -*- C++ -*-
3 //=============================================================================
4 /**
5 * @file CSD_POA.h
7 * @author Yan Dai (dai_y@ociweb.com)
8 */
9 //=============================================================================
11 #ifndef TAO_CSD_POA_H
12 #define TAO_CSD_POA_H
14 #include /**/ "ace/pre.h"
16 #include "tao/CSD_Framework/CSD_FW_Export.h"
18 #if !defined (ACE_LACKS_PRAGMA_ONCE)
19 #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
27 /**
28 * @class TAO_CSD_POA
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
38 public:
39 /// Constructor
40 TAO_CSD_POA (const String &name,
41 PortableServer::POAManager_ptr poa_manager,
42 const TAO_POA_Policy_Set &policies,
43 TAO_Root_POA *parent,
44 ACE_Lock &lock,
45 TAO_SYNCH_MUTEX &thread_lock,
46 TAO_ORB_Core &orb_core,
47 TAO_Object_Adapter *object_adapter);
49 /// Destructor
50 virtual ~TAO_CSD_POA ();
52 /// Pass the Strategy object reference to the CSD poa.
53 virtual
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,
74 TAO_Root_POA *parent,
75 ACE_Lock &lock,
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;
84 private:
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 */