Define the interface for the connect strategy, i.e. the algorithm that controls how does the ORB establishes remote connections. More...
#include <Connect_Strategy.h>
Public Member Functions | |
TAO_Connect_Strategy (TAO_ORB_Core *orb) | |
Constructor. | |
virtual | ~TAO_Connect_Strategy (void) |
Destructor. | |
virtual void | synch_options (ACE_Time_Value *val, ACE_Synch_Options &opt)=0 |
Obtain the synch options that can be passed to ACE_Connector. | |
int | wait (TAO_Connection_Handler *ch, ACE_Time_Value *val) |
Wait for the connection to be completed till a timeout occurs. | |
int | wait (TAO_Transport *t, ACE_Time_Value *val) |
int | wait (TAO_LF_Multi_Event *ev, ACE_Time_Value *val) |
int | poll (TAO_LF_Multi_Event *ev) |
Protected Member Functions | |
virtual int | wait_i (TAO_LF_Event *ev, TAO_Transport *t, ACE_Time_Value *val)=0 |
This is the method that does all the real interesting stuff. | |
Protected Attributes | |
TAO_ORB_Core *const | orb_core_ |
Cached copy of the ORB core pointer. |
Define the interface for the connect strategy, i.e. the algorithm that controls how does the ORB establishes remote connections.
The thread that establishes remote connections can either make a blocking or a non-blocking connect. The strategy to wait for the connection completion can also be different.
This strategy controls how does the ORB schedules and waits for connection completion.
Definition at line 55 of file Connect_Strategy.h.
TAO_Connect_Strategy::TAO_Connect_Strategy | ( | TAO_ORB_Core * | orb | ) |
TAO_Connect_Strategy::~TAO_Connect_Strategy | ( | void | ) | [virtual] |
int TAO_Connect_Strategy::poll | ( | TAO_LF_Multi_Event * | ev | ) |
Do a quick check to see if any connections are complete. This does the same as the wait with an explicit time value of 0.
Definition at line 52 of file Connect_Strategy.cpp.
{ ACE_Time_Value zero (ACE_Time_Value::zero); return this->wait_i (mev, mev->base_transport (), &zero); }
virtual void TAO_Connect_Strategy::synch_options | ( | ACE_Time_Value * | val, | |
ACE_Synch_Options & | opt | |||
) | [pure virtual] |
Obtain the synch options that can be passed to ACE_Connector.
Implemented in TAO_Blocked_Connect_Strategy, TAO_LF_Connect_Strategy, and TAO_Reactive_Connect_Strategy.
int TAO_Connect_Strategy::wait | ( | TAO_Connection_Handler * | ch, | |
ACE_Time_Value * | val | |||
) |
Wait for the connection to be completed till a timeout occurs.
Definition at line 23 of file Connect_Strategy.cpp.
int TAO_Connect_Strategy::wait | ( | TAO_LF_Multi_Event * | ev, | |
ACE_Time_Value * | val | |||
) |
Wait for one of many connections to complete. Returns when one succeeds or all fail.
Definition at line 45 of file Connect_Strategy.cpp.
{ return this->wait_i (mev, mev->base_transport (), max_wait_time); }
int TAO_Connect_Strategy::wait | ( | TAO_Transport * | t, | |
ACE_Time_Value * | val | |||
) |
Definition at line 33 of file Connect_Strategy.cpp.
{ // Basically the connection was EINPROGRESS, but before we could // wait for it some other thread detected a failure and cleaned up // the connection handler. if (t == 0) return -1; return this->wait_i (t->connection_handler (), t, max_wait_time); }
virtual int TAO_Connect_Strategy::wait_i | ( | TAO_LF_Event * | ev, | |
TAO_Transport * | t, | |||
ACE_Time_Value * | val | |||
) | [protected, pure virtual] |
This is the method that does all the real interesting stuff.
Implemented in TAO_Blocked_Connect_Strategy, TAO_LF_Connect_Strategy, and TAO_Reactive_Connect_Strategy.
TAO_ORB_Core* const TAO_Connect_Strategy::orb_core_ [protected] |
Cached copy of the ORB core pointer.
Definition at line 96 of file Connect_Strategy.h.