summaryrefslogtreecommitdiff
path: root/TAO/tao/PortableInterceptor.h
diff options
context:
space:
mode:
authorOssama Othman <ossama-othman@users.noreply.github.com>2000-11-20 05:26:44 +0000
committerOssama Othman <ossama-othman@users.noreply.github.com>2000-11-20 05:26:44 +0000
commit2d1ee666668461c194f0e617db30b4e8aaffe832 (patch)
treec82821cc0d9194e0c8a62383fda374b3dfa3c7a5 /TAO/tao/PortableInterceptor.h
parentf4b1452b3d9e17d51560af99cc43f52724c1e70c (diff)
downloadATCD-2d1ee666668461c194f0e617db30b4e8aaffe832.tar.gz
ChangeLogTag:Sun Nov 19 21:20:58 2000 Ossama Othman <ossama@uci.edu>
Diffstat (limited to 'TAO/tao/PortableInterceptor.h')
-rw-r--r--TAO/tao/PortableInterceptor.h73
1 files changed, 67 insertions, 6 deletions
diff --git a/TAO/tao/PortableInterceptor.h b/TAO/tao/PortableInterceptor.h
index f2de9aeeb40..c1cb4cb395a 100644
--- a/TAO/tao/PortableInterceptor.h
+++ b/TAO/tao/PortableInterceptor.h
@@ -72,22 +72,50 @@ public:
~TAO_ClientRequestInterceptor_Adapter (void);
+ /**
+ * @name PortableInterceptor Client Side Interception Points
+ *
+ * Each of these methods corresponds to a client side interception
+ * point. There are no "intermediate" interception points on the
+ * client side, only "starting" and "ending" interception points.
+ *
+ * @todo
+ * The "send_poll()" and "receive_other()" PortableInterceptor
+ * interception points are missing.
+ */
+ //@{
+ /// This method implements one of the "starting" client side
+ /// interception points.
void send_request (PortableInterceptor::ClientRequestInfo_ptr ri,
CORBA::Environment &);
+ /// This method implements one of the "ending" client side
+ /// interception point.
void receive_reply (PortableInterceptor::ClientRequestInfo_ptr ri,
CORBA::Environment &);
+
+ /// This method implements one of the "ending" client side
+ /// interception point.
void receive_exception (PortableInterceptor::ClientRequestInfo_ptr ri,
CORBA::Environment &);
+ //@}
private:
+ /// Reference to the list of registered interceptors.
TAO_ClientRequestInterceptor_List::TYPE &interceptors_;
- ///< Reference to the list of registered interceptors.
+ /// Cache the length of the interceptor list so that we don't have
+ /// to compute it at each stage of the current interception.
size_t len_;
- ///< Cache the length of the interceptor list so that we don't have
- ///< to compute it at each stage of the current interception.
+
+ /// The number of interceptors "pushed" onto the logical flow
+ /// stack. This is used when unwinding the flow stack.
+ size_t stack_size_;
+
+ /// Flag that denotes if an ending interception point has been
+ /// called.
+ int ending_intercept_called_;
};
@@ -107,23 +135,56 @@ public:
~TAO_ServerRequestInterceptor_Adapter (void);
+ /**
+ * @name PortableInterceptor Client Side Interception Points
+ *
+ * Each of these methods corresponds to a client side interception
+ * point.
+ *
+ * @todo
+ * The "receive_request_service_contexts()" and "send_other()"
+ * PortableInterceptor interception points are missing.
+ */
+ //@{
+ /**
+ * This method implements the "starting" server side interception
+ * point.
+ *
+ * @todo
+ * The "starting" server side interception point should actually be
+ * receive_request_service_contexts(). However, that interception
+ * point hasn't been implemented yet.
+ */
void receive_request (PortableInterceptor::ServerRequestInfo_ptr ri,
CORBA::Environment &);
+ /// This method implements one of the "ending" server side
+ /// interception points.
void send_reply (PortableInterceptor::ServerRequestInfo_ptr ri,
CORBA::Environment &);
+ /// This method implements one of the "ending" server side
+ /// interception points.
void send_exception (PortableInterceptor::ServerRequestInfo_ptr ri,
CORBA::Environment &);
+ //@}
private:
+ /// Reference to the list of registered interceptors.
TAO_ServerRequestInterceptor_List::TYPE &interceptors_;
- ///< Reference to the list of registered interceptors.
+ /// Cache the length of the interceptor list so that we don't have
+ /// to compute it at each stage of the current interception.
size_t len_;
- ///< Cache the length of the interceptor list so that we don't have
- ///< to compute it at each stage of the current interception.
+
+ /// The number of interceptors "pushed" onto the logical flow
+ /// stack. This is used when unwinding the flow stack.
+ size_t stack_size_;
+
+ /// Flag that denotes if an ending interception point has been
+ /// called.
+ int ending_intercept_called_;
};