ACE
6.3.3
|
Contains the values of options used to determine the synchronous and asynchronous behavior. More...
#include <Synch_Options.h>
Public Types | |
enum | { USE_REACTOR = 01, USE_TIMEOUT = 02 } |
Options flags for controlling synchronization. More... | |
Public Member Functions | |
ACE_Synch_Options (unsigned long options=0, const ACE_Time_Value &timeout=ACE_Time_Value::zero, const void *arg=0) | |
void | set (unsigned long options=0, const ACE_Time_Value &timeout=ACE_Time_Value::zero, const void *arg=0) |
bool | operator[] (unsigned long option) const |
Returns true if the specified option(s) are enabled, false otherwise. More... | |
void | operator= (unsigned long option) |
Adds the specified option(s) to the object; does not replace them. More... | |
const void * | arg (void) const |
Returns the "magic cookie" argument. More... | |
void | arg (const void *) |
Set the "magic cookie" argument. More... | |
const ACE_Time_Value & | timeout (void) const |
void | timeout (const ACE_Time_Value &tv) |
const ACE_Time_Value * | time_value (void) const |
void | dump (void) const |
Dump the state of an object. More... | |
Public Attributes | |
ACE_ALLOC_HOOK_DECLARE | |
Declare the dynamic allocation hooks. More... | |
Static Public Attributes | |
static ACE_Synch_Options | defaults |
static ACE_Synch_Options | synch |
This is the default synchronous setting. More... | |
static ACE_Synch_Options | asynch |
This is the default asynchronous setting. More... | |
Private Attributes | |
unsigned long | options_ |
Keeps track of the enabled options. More... | |
ACE_Time_Value | timeout_ |
Amount of time to wait for timeouts. More... | |
const void * | arg_ |
Contains the values of options used to determine the synchronous and asynchronous behavior.
The supported set of options is depicted in the following table. The Reactor column indicates whether or not the USE_REACTOR option is supplied. The Timeout column specifies the period of time specified by the object; Unused implies that USE_TIMEOUT is not included in the options and the default timeout value, ACE_Time_Value::zero, is specified, either explicitly or by default.
Reactor | Timeout | Behavior |
yes | Unused | Infinite timeout (using Reactor); this is the default. |
yes | time | Try asynch transaction for the specified time (using Reactor) |
yes | 0,0 | Poll; try, if EWOULDBLOCK, return immediately (using Reactor) |
no | Unused | Block until completion (don't use Reactor) |
no | time | Wait up to specified amount of time for completion (don't use Reactor) |
no | 0,0 | Poll and return immediately |
anonymous enum |
ACE_Synch_Options::ACE_Synch_Options | ( | unsigned long | options = 0 , |
const ACE_Time_Value & | timeout = ACE_Time_Value::zero , |
||
const void * | arg = 0 |
||
) |
Initialize the object to default values unless specified otherwise.
options | Specifies the options to use; default is neither option (no reactor, no timeout). |
timeout | Specifies the period of time to use for the operation's timeout. The default is ACE_Time_Value::zero, noted as 0,0 in the behavior options table. If a non-zero timeout is specified, the USE_TIMEOUT option is added to options. To use a zero timeout, USE_TIMEOUT must be explicitly specified in options. |
arg | A completion tag that can be passed through the options; the class using ACE_Synch_Options can access this. ACE_Synch_Options makes no use of it internally. |
const void * ACE_Synch_Options::arg | ( | void | ) | const |
Returns the "magic cookie" argument.
void ACE_Synch_Options::arg | ( | const void * | a | ) |
Set the "magic cookie" argument.
void ACE_Synch_Options::dump | ( | void | ) | const |
Dump the state of an object.
void ACE_Synch_Options::operator= | ( | unsigned long | option | ) |
Adds the specified option(s) to the object; does not replace them.
bool ACE_Synch_Options::operator[] | ( | unsigned long | option | ) | const |
Returns true if the specified option(s) are enabled, false otherwise.
void ACE_Synch_Options::set | ( | unsigned long | options = 0 , |
const ACE_Time_Value & | timeout = ACE_Time_Value::zero , |
||
const void * | arg = 0 |
||
) |
Initialize the object; arguments are the same as for the constructor.
const ACE_Time_Value * ACE_Synch_Options::time_value | ( | void | ) | const |
Returns a timeout pointer if (*this)[USE_TIMEOUT] is true, else 0. This should be used with care, e.g., the timeout pointer should not be stored in a manner that will lead to dangling pointers.
const ACE_Time_Value & ACE_Synch_Options::timeout | ( | void | ) | const |
Returns a reference to the ACE_Time_Value. This value only makes sense if (*this)[USE_TIMEOUT] is true.
void ACE_Synch_Options::timeout | ( | const ACE_Time_Value & | tv | ) |
Set the timeout value. This method does not alter the options; in particular, it doesn't add USE_TIMEOUT to the options when a non-zero timeout is specified as the constructor and set() do.
ACE_Synch_Options::ACE_ALLOC_HOOK_DECLARE |
Declare the dynamic allocation hooks.
|
private |
"Magic cookie" always passed in as an argument to the ACE_Reactor's schedule_timer() method. Used to communicate values for asynchronous programming.
|
static |
This is the default asynchronous setting.
|
static |
This is the default setting for options, which will block synchronously.
|
private |
Keeps track of the enabled options.
|
static |
This is the default synchronous setting.
|
private |
Amount of time to wait for timeouts.