diff options
author | bala <balanatarajan@users.noreply.github.com> | 2001-07-04 13:22:23 +0000 |
---|---|---|
committer | bala <balanatarajan@users.noreply.github.com> | 2001-07-04 13:22:23 +0000 |
commit | b8db6896aaa61d1f67c8353e9b36015e28d0d5ed (patch) | |
tree | 58aed43ba815c02f5fb016a0330937a9860efff4 | |
parent | c6130f41ccb64ffc729099584f16aece1a13d2a7 (diff) | |
download | ATCD-b8db6896aaa61d1f67c8353e9b36015e28d0d5ed.tar.gz |
to my box at home...
-rw-r--r-- | TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp | 26 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp | 7 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.h | 4 |
3 files changed, 34 insertions, 3 deletions
diff --git a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp index 97a904a1bf4..7134fecd93a 100644 --- a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp +++ b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp @@ -255,8 +255,17 @@ TAO_SSLIOP_Connection_Handler::fetch_handle (void) int +TAO_IIOP_Connection_Handler::resume_handler (void) +{ + return TAO_RESUMES_CONNECTION_HANDLER; +} + +int TAO_SSLIOP_Connection_Handler::handle_output (ACE_HANDLE) { + TAO_Resume_Handle resume_handle (this->orb_core (), + this->fetch_handle ()); + return this->transport ()->handle_output (); } @@ -332,7 +341,19 @@ TAO_SSLIOP_Connection_Handler::process_listen_point_list ( int TAO_SSLIOP_Connection_Handler::handle_input (ACE_HANDLE h) { - return this->handle_input_i (h); + // Increase the reference count on the upcall that have passed us. + this->pending_upcalls_++; + + TAO_Resume_Handle resume_handle (this->orb_core (), + this->fetch_handle ()); + + int retval = this->transport ()->handle_input_i (resume_handle); + + // The upcall is done. Bump down the reference count + if (--this->pending_upcalls_ <= 0) + retval = -1; + + return retval; } @@ -341,13 +362,12 @@ int TAO_SSLIOP_Connection_Handler::handle_input_i (ACE_HANDLE, ACE_Time_Value *max_wait_time) { - int result; + // Set up the SSLIOP::Current object. TAO_SSL_State_Guard ssl_state_guard (this, this->orb_core (), result); - if (result == -1) return -1; diff --git a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp index fa48ba0cde0..e107f9c4585 100644 --- a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp +++ b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp @@ -69,6 +69,13 @@ TAO_SSLIOP_Transport::messaging_object (void) return this->messaging_object_; } +int +TAO_SSLIOP_Transport::handle_input_i (TAO_Resume_Handle &rh, + ACE_Time_Value *max_wait_time, + int block) +{ + +} ssize_t TAO_SSLIOP_Transport::send_i (iovec *iov, diff --git a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.h b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.h index 4f3c3d3e71e..eb316a425b1 100644 --- a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.h +++ b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.h @@ -82,6 +82,10 @@ protected: virtual TAO_Pluggable_Messaging *messaging_object (void); + virtual int handle_input_i (TAO_Resume_Handle &rh, + ACE_Time_Value *max_wait_time = 0, + int block = 0); + /// Write the complete Message_Block chain to the connection. virtual ssize_t send_i (iovec *iov, int iovcnt, size_t &bytes_transferred, |