Policy_Manager.h

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

Generated on Tue Feb 2 17:37:52 2010 for TAO by  doxygen 1.4.7