2 #ifndef CLIENT_REQUEST_INTERCEPTOR_H
3 #define CLIENT_REQUEST_INTERCEPTOR_H
5 #include "ace/config-all.h"
7 #if !defined (ACE_LACKS_PRAGMA_ONCE)
9 #endif /* ACE_LACKS_PRAGMA_ONCE */
11 #include "tao/PI/PI.h"
12 #include "tao/PortableInterceptorC.h"
13 #include "tao/LocalObject.h"
15 #include "tao/CORBA_String.h"
17 class Client_Request_Interceptor
18 : public virtual PortableInterceptor::ClientRequestInterceptor
,
19 public virtual CORBA::LocalObject
23 Client_Request_Interceptor (const char *orb_id
,
24 const char *forward_str
);
27 * @name Methods Required by the Client Request Interceptor
30 * These are methods that must be implemented since they are pure
31 * virtual in the abstract base class. They are the canonical
32 * methods required for all client request interceptors.
35 /// Return the name of this ClientRequestinterceptor.
36 virtual char * name ();
38 virtual void destroy ();
40 virtual void send_request (
41 PortableInterceptor::ClientRequestInfo_ptr ri
);
43 virtual void send_poll (
44 PortableInterceptor::ClientRequestInfo_ptr ri
);
46 virtual void receive_reply (
47 PortableInterceptor::ClientRequestInfo_ptr ri
);
49 virtual void receive_exception (
50 PortableInterceptor::ClientRequestInfo_ptr ri
);
52 virtual void receive_other (
53 PortableInterceptor::ClientRequestInfo_ptr ri
);
57 ///The ID of the ORB this interceptor is registered with.
58 CORBA::String_var orb_id_
;
60 /// Pseudo-reference to the ORB this interceptor is registered
64 /// The number of requests intercepted by this interceptor.
65 CORBA::ULong request_count_
;
67 /// Stringified reference to the object the initial request will be
68 /// forwarded to by this interceptor.
69 CORBA::String_var forward_str_
;
72 #endif /* CLIENT_REQUEST_INTERCEPTOR_H */