00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file Buffering_Constraint_Policy.h 00006 * 00007 * Buffering_Constraint_Policy.h,v 1.34 2006/04/19 08:33:15 jwillemsen Exp 00008 * 00009 * @author Irfan Pyarali (irfan@cs.wustl.edu) 00010 */ 00011 //============================================================================= 00012 00013 00014 #ifndef TAO_BUFFERING_CONSTRAINT_POLICY_H 00015 #define TAO_BUFFERING_CONSTRAINT_POLICY_H 00016 00017 #include /**/ "ace/pre.h" 00018 00019 #include "tao/TAOC.h" 00020 00021 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00022 # pragma once 00023 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00024 00025 #if (TAO_HAS_BUFFERING_CONSTRAINT_POLICY == 1) 00026 00027 #include "tao/LocalObject.h" 00028 00029 #if defined(_MSC_VER) 00030 #pragma warning(push) 00031 #pragma warning(disable:4250) 00032 #endif /* _MSC_VER */ 00033 00034 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00035 00036 /** 00037 * @class TAO_Buffering_Constraint_Policy 00038 * 00039 * @brief Implementation class for TAO-specific Buffering Constraint Policy. 00040 * 00041 * This policy is used to control the buffering of requests by the ORB. 00042 */ 00043 class TAO_Export TAO_Buffering_Constraint_Policy 00044 : public TAO::BufferingConstraintPolicy, 00045 public TAO_Local_RefCounted_Object 00046 { 00047 public: 00048 /// Constructor. 00049 TAO_Buffering_Constraint_Policy (const TAO::BufferingConstraint &buffering_constraint); 00050 00051 /// Copy constructor. 00052 TAO_Buffering_Constraint_Policy (const TAO_Buffering_Constraint_Policy &rhs); 00053 00054 /// Returns a copy of <this>. 00055 virtual TAO_Buffering_Constraint_Policy *clone (void) const; 00056 00057 // = The TAO::Buffering_Constraint_Policy methods 00058 00059 virtual TAO::BufferingConstraint buffering_constraint (ACE_ENV_SINGLE_ARG_DECL) 00060 ACE_THROW_SPEC ((CORBA::SystemException)); 00061 00062 void get_buffering_constraint (TAO::BufferingConstraint &) const; 00063 00064 virtual CORBA::PolicyType policy_type (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) 00065 ACE_THROW_SPEC ((CORBA::SystemException)); 00066 00067 virtual CORBA::Policy_ptr copy (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) 00068 ACE_THROW_SPEC ((CORBA::SystemException)); 00069 00070 virtual void destroy (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) 00071 ACE_THROW_SPEC ((CORBA::SystemException)); 00072 00073 // Return the cached policy type for this policy. 00074 virtual TAO_Cached_Policy_Type _tao_cached_type (void) const; 00075 00076 private: 00077 /// The attribute 00078 TAO::BufferingConstraint buffering_constraint_; 00079 }; 00080 00081 TAO_END_VERSIONED_NAMESPACE_DECL 00082 00083 #if defined(_MSC_VER) 00084 #pragma warning(pop) 00085 #endif /* _MSC_VER */ 00086 00087 #if defined (__ACE_INLINE__) 00088 #include "tao/Buffering_Constraint_Policy.i" 00089 #endif /* __ACE_INLINE__ */ 00090 00091 #endif /* TAO_HAS_BUFFERING_CONSTRAINT_POLICY == 1 */ 00092 00093 #include /**/ "ace/post.h" 00094 #endif /* TAO_BUFFERING_CONSTRAINT_POLICY_H */