3 //=============================================================================
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)
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
38 * @class ServerRequestDetails
40 * @brief The policy-driven details for a registered server request
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
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;
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 */