ClientRequestDetails.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file    ClientRequestDetails.h
00006  *
00007  *  ClientRequestDetails.h,v 1.3 2006/03/10 07:19:12 jtc Exp
00008  *
00009  *   This file declares a class that manages the details
00010  *   about a registered client request interceptor.  Policies can be
00011  *   used when interceptors are registered, and the policy values
00012  *   will be processed and used to modify the values of the
00013  *   ClientRequestDetails object associated with the registered
00014  *   client request interceptor.
00015  *
00016  *  @author  Tim Bradley <bradley_t@ociweb.com>
00017  */
00018 //=============================================================================
00019 
00020 #ifndef TAO_CLIENT_REQUEST_DETAILS_H
00021 #define TAO_CLIENT_REQUEST_DETAILS_H
00022 
00023 #include /**/ "ace/pre.h"
00024 
00025 #include "tao/orbconf.h"
00026 
00027 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00028 # pragma once
00029 #endif /* ACE_LACKS_PRAGMA_ONCE */
00030 
00031 #if TAO_HAS_INTERCEPTORS == 1
00032 
00033 #include "tao/PI/ProcessingModePolicyC.h"
00034 
00035 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00036 
00037 namespace TAO
00038 {
00039   /**
00040    * @class ClientRequestDetails
00041    *
00042    * @brief The policy-driven details for a registered client request
00043    *        interceptor
00044    *
00045    * Each time a client request interceptor is registered with an ORB,
00046    * a ClientRequestDetails object will be created and associated with
00047    * the registered client request interceptor.  If the interceptor is
00048    * registered with policies, the policies will be used to adjust the
00049    * values in the ClientRequestDetails appropriately.
00050    */
00051   class ClientRequestDetails
00052   {
00053   public:
00054 
00055     ClientRequestDetails (void);
00056 
00057     void apply_policies (const CORBA::PolicyList& policies
00058                          ACE_ENV_ARG_DECL);
00059 
00060     /// Returns true if the ProcessingMode setting permits the "firing"
00061     /// of the associated client request interceptor based upon the
00062     /// remote vs. collocated nature of the current servant request
00063     /// that is being dispatched.
00064     bool should_be_processed (bool is_remote_request) const;
00065 
00066   private:
00067 
00068     /// The ProcessingMode setting that can be adjusted via the
00069     /// PortableInterceptor::ProcessingModePolicy.
00070     PortableInterceptor::ProcessingMode processing_mode_;
00071   };
00072 }
00073 
00074 TAO_END_VERSIONED_NAMESPACE_DECL
00075 
00076 #if defined (__ACE_INLINE__)
00077 #include "tao/PI/ClientRequestDetails.inl"
00078 #endif  /* __ACE_INLINE__ */
00079 
00080 #endif  /* TAO_HAS_INTERCEPTORS == 1 */
00081 
00082 #include /**/ "ace/post.h"
00083 
00084 #endif /* TAO_CLIENT_REQUEST_DETAILS_H */

Generated on Thu Nov 9 12:51:39 2006 for TAO_PI by doxygen 1.3.6