3 //=============================================================================
5 * @file Policy_Manager.h
7 * An implementation for the CORBA::PolicyManager interface.
9 * @author Carlos O'Ryan (coryan@cs.wustl.edu)
11 //=============================================================================
14 #ifndef TAO_POLICY_MANAGER_H
15 #define TAO_POLICY_MANAGER_H
17 #include /**/ "ace/pre.h"
18 #include "ace/Guard_T.h"
20 #if !defined (ACE_LACKS_PRAGMA_ONCE)
22 #endif /* ACE_LACKS_PRAGMA_ONCE */
24 #include "tao/orbconf.h"
26 #if (TAO_HAS_CORBA_MESSAGING == 1)
28 #include "tao/Policy_ManagerC.h"
29 #include "tao/LocalObject.h"
30 #include "tao/Policy_Set.h"
32 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
34 class TAO_Policy_Manager
35 : public CORBA::PolicyManager
36 , public ::CORBA::LocalObject
40 TAO_Policy_Manager (void);
42 /// Obtain a single policy.
43 CORBA::Policy_ptr
get_policy (CORBA::PolicyType policy
);
45 /// Obtain a single cached policy.
46 CORBA::Policy_ptr
get_cached_policy (TAO_Cached_Policy_Type type
);
48 // = The CORBA::PolicyManager operations
50 virtual CORBA::PolicyList
* get_policy_overrides (
51 const CORBA::PolicyTypeSeq
& ts
);
53 virtual void set_policy_overrides (const CORBA::PolicyList
& policies
,
54 CORBA::SetOverrideType set_add
);
57 TAO_Policy_Manager (TAO_Policy_Manager
const &) = delete;
58 TAO_Policy_Manager
& operator= (TAO_Policy_Manager
const &) = delete;
59 TAO_Policy_Manager (TAO_Policy_Manager
&&) = delete;
60 TAO_Policy_Manager
& operator= (TAO_Policy_Manager
&&) = delete;
64 TAO_SYNCH_MUTEX mutex_
;
66 /// The implementation.
70 TAO_END_VERSIONED_NAMESPACE_DECL
72 #if defined (__ACE_INLINE__)
73 # include "tao/Policy_Manager.inl"
74 #endif /* __ACE_INLINE__ */
76 #endif /* TAO_HAS_CORBA_MESSAGING == 1 */
78 #include /**/ "ace/post.h"
80 #endif /* TAO_POLICY_MANAGER_H */