00001 /* -*- C++ -*- */ 00002 //============================================================================= 00003 /** 00004 * @file ProcessingModePolicy.h 00005 * 00006 * ProcessingModePolicy.h,v 1.5 2006/03/10 07:19:12 jtc Exp 00007 * 00008 * @author Tim Bradley (bradley_t@ociweb.com) 00009 */ 00010 //============================================================================= 00011 00012 #ifndef TAO_PROCESSING_MODE_POLICY_H 00013 #define TAO_PROCESSING_MODE_POLICY_H 00014 00015 #include /**/ "ace/pre.h" 00016 00017 #include "tao/orbconf.h" 00018 00019 #if TAO_HAS_INTERCEPTORS == 1 00020 00021 #include "tao/PI/pi_export.h" 00022 00023 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00024 # pragma once 00025 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00026 00027 #include "tao/LocalObject.h" 00028 #include "tao/PI/ProcessingModePolicyC.h" 00029 00030 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00031 00032 /** 00033 * @class TAO_ProcessingModePolicy 00034 * 00035 * @brief Implementation class for Portable Interceptor ProcessingModePolicy. 00036 * 00037 * This policy is used to specify which kinds of requests (collocated vs. 00038 * remote) should (or should not) cause a Portable Interceptor to be used. 00039 */ 00040 00041 class TAO_PI_Export TAO_ProcessingModePolicy 00042 : public PortableInterceptor::ProcessingModePolicy, 00043 public TAO_Local_RefCounted_Object 00044 { 00045 public: 00046 /// Constructor. 00047 TAO_ProcessingModePolicy (PortableInterceptor::ProcessingMode mode); 00048 00049 virtual PortableInterceptor::ProcessingMode processing_mode 00050 (ACE_ENV_SINGLE_ARG_DECL) 00051 ACE_THROW_SPEC ((CORBA::SystemException)); 00052 00053 virtual CORBA::PolicyType policy_type (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) 00054 ACE_THROW_SPEC ((CORBA::SystemException)); 00055 00056 virtual CORBA::Policy_ptr copy (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) 00057 ACE_THROW_SPEC ((CORBA::SystemException)); 00058 00059 virtual void destroy (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) 00060 ACE_THROW_SPEC ((CORBA::SystemException)); 00061 00062 private: 00063 /// The attribute 00064 PortableInterceptor::ProcessingMode processing_mode_; 00065 }; 00066 00067 TAO_END_VERSIONED_NAMESPACE_DECL 00068 00069 #endif /* TAO_HAS_INTERCEPTORS == 1 */ 00070 00071 #include /**/ "ace/post.h" 00072 #endif /* TAO_PROCESSING_MODE_POLICY_H */