#include <LF_CH_Event.h>
Inheritance diagram for TAO_LF_CH_Event:
[NOHEADER] | |
int | successful (void) const |
int | error_detected (void) const |
virtual int | is_state_final (void) |
Check whether we have reached the final state.. | |
Public Member Functions | |
TAO_LF_CH_Event (void) | |
Constructor. | |
virtual | ~TAO_LF_CH_Event (void) |
Destructor. | |
Private Member Functions | |
virtual void | state_changed_i (int new_state) |
Validate and change the state. | |
virtual void | set_state (int new_state) |
Set the state irrespective of anything. | |
Private Attributes | |
int | prev_state_ |
The previous state that the LF_CH_Event was in. | |
Friends | |
class | TAO_LF_Multi_Event |
Concrete event types and manipulation class which is used for connection handling purposes.
Definition at line 37 of file LF_CH_Event.h.
|
Constructor.
|
|
Destructor.
Definition at line 16 of file LF_CH_Event.cpp.
00017 { 00018 } |
|
Return 1 if an error was detected while waiting for the event Implements TAO_LF_Event. Definition at line 80 of file LF_CH_Event.cpp. References prev_state_. Referenced by TAO_IIOP_Connector::complete_connection(), and TAO_LF_Multi_Event::error_detected().
00081 { 00082 if (this->prev_state_ == TAO_LF_Event::LFS_CONNECTION_WAIT) 00083 return this->state_ == TAO_LF_Event::LFS_CONNECTION_CLOSED; 00084 00085 return this->state_ == TAO_LF_Event::LFS_TIMEOUT; 00086 } |
|
Check whether we have reached the final state..
Implements TAO_LF_Event. Definition at line 100 of file LF_CH_Event.cpp. Referenced by TAO_LF_Multi_Event::is_state_final(), and set_state().
00101 { 00102 return this->state_ == TAO_LF_Event::LFS_CONNECTION_CLOSED; 00103 } |
|
Set the state irrespective of anything.
Reimplemented from TAO_LF_Event. Definition at line 89 of file LF_CH_Event.cpp. References is_state_final().
00090 { 00091 // @@ NOTE: Is this still required? 00092 if (this->is_state_final () == 0 00093 && new_state == TAO_LF_Event::LFS_TIMEOUT) 00094 { 00095 this->state_ = new_state; 00096 } 00097 } |
|
Validate and change the state.
Implements TAO_LF_Event. Definition at line 21 of file LF_CH_Event.cpp. References prev_state_.
00022 { 00023 if (this->state_ == new_state) 00024 return; 00025 00026 // Validate the state change 00027 if (this->state_ == TAO_LF_Event::LFS_IDLE) 00028 { 00029 // From the LFS_IDLE state we can only become active. 00030 if (new_state == TAO_LF_Event::LFS_CONNECTION_WAIT) 00031 { 00032 this->prev_state_ = this->state_; 00033 this->state_ = new_state; 00034 } 00035 return; 00036 } 00037 else if (this->state_ == TAO_LF_Event::LFS_CONNECTION_WAIT) 00038 { 00039 // Only a few states are possible from CONNECTION_WAIT states 00040 if (new_state == TAO_LF_Event::LFS_CONNECTION_CLOSED 00041 || new_state == TAO_LF_Event::LFS_SUCCESS) 00042 { 00043 this->prev_state_ = this->state_; 00044 this->state_ = new_state; 00045 } 00046 00047 return; 00048 } 00049 else if (this->state_ == TAO_LF_Event::LFS_SUCCESS) 00050 { 00051 if (new_state == TAO_LF_Event::LFS_CONNECTION_CLOSED) 00052 { 00053 this->prev_state_ = this->state_; 00054 this->state_ = new_state; 00055 } 00056 return; 00057 } 00058 else if (this->state_ == TAO_LF_Event::LFS_TIMEOUT) 00059 { 00060 if (new_state == TAO_LF_Event::LFS_CONNECTION_CLOSED) 00061 { 00062 // Dont reset the previous state 00063 this->state_ = new_state; 00064 } 00065 } 00066 return; 00067 } |
|
Return 1 if the condition was satisfied successfully, 0 if it has not Implements TAO_LF_Event. Definition at line 71 of file LF_CH_Event.cpp. References prev_state_. Referenced by TAO_LF_Multi_Event::successful().
00072 { 00073 if (this->prev_state_ == TAO_LF_Event::LFS_CONNECTION_WAIT) 00074 return this->state_ == TAO_LF_Event::LFS_SUCCESS; 00075 00076 return this->state_ == TAO_LF_Event::LFS_CONNECTION_CLOSED; 00077 } |
|
The TAO_LF_Multi_Event class is another specialization of TAO_LF_Event, used for aggregating many connection handlers into a single event object.. It requires friendship so that it can check the is_state_final() flag on each of its contained connection handlers. Definition at line 47 of file LF_CH_Event.h. |
|
The previous state that the LF_CH_Event was in.
Definition at line 114 of file LF_CH_Event.h. Referenced by error_detected(), state_changed_i(), and successful(). |