3 //=============================================================================
5 * @file POA_Policy_Set.h
9 * @author Irfan Pyarali
11 //=============================================================================
13 #ifndef TAO_POA_POLICY_SET_H
14 #define TAO_POA_POLICY_SET_H
15 #include /**/ "ace/pre.h"
17 #include "tao/PortableServer/portableserver_export.h"
19 #if !defined (ACE_LACKS_PRAGMA_ONCE)
21 #endif /* ACE_LACKS_PRAGMA_ONCE */
23 #include "tao/Policy_Set.h"
25 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
27 class TAO_Policy_Validator
;
29 class TAO_PortableServer_Export TAO_POA_Policy_Set
32 TAO_POA_Policy_Set ();
34 TAO_POA_Policy_Set (const TAO_POA_Policy_Set
&rhs
);
36 ~TAO_POA_Policy_Set ();
38 /// Returns the policy at the specified index.
39 /// CORBA::Policy::_nil () is returned if the policy doesn't exist
40 CORBA::Policy
*get_policy_by_index (CORBA::ULong index
);
42 /// Get the number of policies
43 CORBA::ULong
num_policies () const;
45 /// Obtain a single cached policy.
46 CORBA::Policy_ptr
get_cached_policy (TAO_Cached_Policy_Type type
);
48 void merge_policies (const CORBA::PolicyList
&policies
);
50 void merge_policy (const CORBA::Policy_ptr policy
);
52 void validate_policies (TAO_Policy_Validator
&validator
,
53 TAO_ORB_Core
&orb_core
);
55 /// Add all of the client exposed policies to the specified list.
56 void add_client_exposed_fixed_policies (CORBA::PolicyList
*client_exposed_policies
);
58 TAO_Policy_Set
&policies ();
60 /// Obtain a single policy.
61 CORBA::Policy_ptr
get_policy (CORBA::PolicyType policy
);
67 TAO_END_VERSIONED_NAMESPACE_DECL
69 #if defined (__ACE_INLINE__)
70 # include "tao/PortableServer/POA_Policy_Set.inl"
71 #endif /* __ACE_INLINE__ */
73 #include /**/ "ace/post.h"
74 #endif /* TAO_POA_POLICY_SET_H */