Merge pull request #2309 from mitza-oci/warnings
[ACE_TAO.git] / TAO / tao / PI / ClientRequestDetails.h
blob9907aa9296183c8605fc44a02f965059f480d301
1 // -*- C++ -*-
3 //=============================================================================
4 /**
5 * @file ClientRequestDetails.h
7 * This file declares a class that manages the details
8 * about a registered client request interceptor. Policies can be
9 * used when interceptors are registered, and the policy values
10 * will be processed and used to modify the values of the
11 * ClientRequestDetails object associated with the registered
12 * client request interceptor.
14 * @author Tim Bradley <bradley_t@ociweb.com>
16 //=============================================================================
18 #ifndef TAO_CLIENT_REQUEST_DETAILS_H
19 #define TAO_CLIENT_REQUEST_DETAILS_H
21 #include /**/ "ace/pre.h"
23 #include "tao/orbconf.h"
25 #if !defined (ACE_LACKS_PRAGMA_ONCE)
26 # pragma once
27 #endif /* ACE_LACKS_PRAGMA_ONCE */
29 #if TAO_HAS_INTERCEPTORS == 1
31 #include "tao/PI/PI_includeC.h"
33 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
35 namespace TAO
37 /**
38 * @class ClientRequestDetails
40 * @brief The policy-driven details for a registered client request
41 * interceptor
43 * Each time a client request interceptor is registered with an ORB,
44 * a ClientRequestDetails object will be created and associated with
45 * the registered client request interceptor. If the interceptor is
46 * registered with policies, the policies will be used to adjust the
47 * values in the ClientRequestDetails appropriately.
49 class ClientRequestDetails
51 public:
52 ClientRequestDetails ();
54 void apply_policies (const CORBA::PolicyList& policies);
56 /// Returns true if the ProcessingMode setting permits the "firing"
57 /// of the associated client request interceptor based upon the
58 /// remote vs. collocated nature of the current servant request
59 /// that is being dispatched.
60 bool should_be_processed (bool is_remote_request) const;
62 private:
63 /// The ProcessingMode setting that can be adjusted via the
64 /// PortableInterceptor::ProcessingModePolicy.
65 PortableInterceptor::ProcessingMode processing_mode_;
69 TAO_END_VERSIONED_NAMESPACE_DECL
71 #if defined (__ACE_INLINE__)
72 #include "tao/PI/ClientRequestDetails.inl"
73 #endif /* __ACE_INLINE__ */
75 #endif /* TAO_HAS_INTERCEPTORS == 1 */
77 #include /**/ "ace/post.h"
79 #endif /* TAO_CLIENT_REQUEST_DETAILS_H */