00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file Policy_Current.h 00006 * 00007 * $Id: Policy_Current.h 81429 2008-04-24 18:49:54Z johnnyw $ 00008 * 00009 * An implementation for the CORBA::PolicyCurrent interface. 00010 * 00011 * 00012 * @author Carlos O'Ryan (coryan@cs.wustl.edu) 00013 */ 00014 //============================================================================= 00015 00016 00017 #ifndef TAO_POLICY_CURRENT_H 00018 #define TAO_POLICY_CURRENT_H 00019 00020 #include /**/ "ace/pre.h" 00021 00022 #include "tao/orbconf.h" 00023 00024 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00025 # pragma once 00026 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00027 00028 #if (TAO_HAS_CORBA_MESSAGING == 1) 00029 00030 #include "tao/Policy_CurrentC.h" 00031 #include "tao/LocalObject.h" 00032 00033 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00034 00035 class TAO_Policy_Current_Impl; 00036 00037 class TAO_Policy_Current 00038 : public CORBA::PolicyCurrent 00039 , public ::CORBA::LocalObject 00040 { 00041 public: 00042 /// Constructor 00043 TAO_Policy_Current (void); 00044 00045 /// Obtain a single policy. 00046 CORBA::Policy_ptr get_policy (CORBA::PolicyType policy); 00047 00048 /// Obtain a single cached policy. 00049 CORBA::Policy_ptr get_cached_policy (TAO_Cached_Policy_Type type); 00050 00051 // = The CORBA::PolicyManager operations 00052 00053 virtual CORBA::PolicyList * get_policy_overrides ( 00054 const CORBA::PolicyTypeSeq & ts); 00055 00056 virtual void set_policy_overrides ( 00057 const CORBA::PolicyList & policies, 00058 CORBA::SetOverrideType set_add); 00059 00060 // = Set and get the implementation. 00061 TAO_Policy_Current_Impl &implementation (void) const; 00062 TAO_Policy_Current_Impl &implementation (TAO_Policy_Current_Impl &); 00063 }; 00064 00065 TAO_END_VERSIONED_NAMESPACE_DECL 00066 00067 #if defined (__ACE_INLINE__) 00068 # include "tao/Policy_Current.inl" 00069 #endif /* __ACE_INLINE__ */ 00070 00071 #endif /* TAO_HAS_CORBA_MESSAGING == 1 */ 00072 00073 #include /**/ "ace/post.h" 00074 00075 #endif /* TAO_POLICY_CURRENT_H */