#include <Resume_Handle.h>
Public Types | |
enum | TAO_Handle_Resume_Flag { TAO_HANDLE_RESUMABLE = 0, TAO_HANDLE_ALREADY_RESUMED, TAO_HANDLE_LEAVE_SUSPENDED } |
Public Member Functions | |
TAO_Resume_Handle (TAO_ORB_Core *orb_core=0, ACE_HANDLE h=ACE_INVALID_HANDLE) | |
Constructor. | |
~TAO_Resume_Handle (void) | |
Destructor. | |
void | set_flag (TAO_Handle_Resume_Flag fl) |
Allow the users of this class to change the underlying flag. | |
TAO_Resume_Handle & | operator= (const TAO_Resume_Handle &rhs) |
Assignment operator. | |
void | resume_handle (void) |
void | handle_input_return_value_hook (int &return_value) |
Private Attributes | |
TAO_ORB_Core * | orb_core_ |
Our ORB Core. | |
ACE_HANDLE | handle_ |
The actual handle that needs resumption.. | |
TAO_Handle_Resume_Flag | flag_ |
Please read the documentation in the bugzilla #575 in the bugzilla database what we mean by handler resumption.
When TAO uses a TP reactor, it takes care of resuming the handler once it makes sure that it has read the whole message out of the socket. During the process of reading the transport object would have to deal with errors in 'read' from the socket, or errors in the messages that has been received. Instead of calling resume_handler () on the reactor at every point in the code, we use this utility class to take care of the resumption.
TAO_Resume_Handle::TAO_Resume_Handle | ( | TAO_ORB_Core * | orb_core = 0 , |
|
ACE_HANDLE | h = ACE_INVALID_HANDLE | |||
) |
Constructor.
TAO_Resume_Handle::~TAO_Resume_Handle | ( | void | ) |
Destructor.
void TAO_Resume_Handle::handle_input_return_value_hook | ( | int & | return_value | ) |
Hook method called at the end of a connection handler's handle_input function. Might override the handle_input return value or change the resume_handler's flag_ value.
TAO_Resume_Handle & TAO_Resume_Handle::operator= | ( | const TAO_Resume_Handle & | rhs | ) |
Assignment operator.
void TAO_Resume_Handle::resume_handle | ( | void | ) |
Resume the handle in the reactor only if the ORB uses a TP reactor. Else we don't resume the handle.
void TAO_Resume_Handle::set_flag | ( | TAO_Handle_Resume_Flag | fl | ) |
Allow the users of this class to change the underlying flag.
The flag for indicating whether the handle has been resumed or not. A value of '0' indicates that the handle needs resumption.
ACE_HANDLE TAO_Resume_Handle::handle_ [private] |
The actual handle that needs resumption..
TAO_ORB_Core* TAO_Resume_Handle::orb_core_ [private] |
Our ORB Core.