Merge pull request #2301 from sonndinh/remove-dup-reactor-functions
[ACE_TAO.git] / TAO / tao / PI_Server / ServerRequestDetails.h
blob69ea625353f8af60d3d1c147d3ac10602c2aa415
1 // -*- C++ -*-
3 //=============================================================================
4 /**
5 * @file ServerRequestDetails.h
7 * This file declares a class that manages the details
8 * about a registered server 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 * ServerRequestDetails object associated with the registered
12 * server request interceptor.
14 * @author Tim Bradley <bradley_t@ociweb.com>
16 //=============================================================================
18 #ifndef TAO_SERVER_REQUEST_DETAILS_H
19 #define TAO_SERVER_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 ServerRequestDetails
40 * @brief The policy-driven details for a registered server request
41 * interceptor
43 * Each time a server request interceptor is registered with an ORB,
44 * a ServerRequestDetails object will be created and associated with
45 * the registered server request interceptor. If the interceptor is
46 * registered with policies, the policies will be used to adjust the
47 * values in the ServerRequestDetails appropriately.
49 class ServerRequestDetails
51 public:
52 ServerRequestDetails ();
54 void apply_policies (const CORBA::PolicyList& policies);
56 /// Returns true if the ProcessingMode setting permits the "firing"
57 /// of the associated server 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_Server/ServerRequestDetails.inl"
73 #endif /* __ACE_INLINE__ */
75 #endif /* TAO_HAS_INTERCEPTORS == 1 */
77 #include /**/ "ace/post.h"
79 #endif /* TAO_SERVER_REQUEST_DETAILS_H */