1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
// $Id$
#define ACE_BUILD_DLL
#include "ace/Synch_Options.h"
#if !defined (__ACE_INLINE__)
#include "ace/Synch_Options.i"
#endif /* __ACE_INLINE__ */
ACE_RCSID(ace, Synch_Options, "$Id$")
ACE_ALLOC_HOOK_DEFINE(ACE_Synch_Options)
void
ACE_Synch_Options::dump (void) const
{
ACE_TRACE ("ACE_Synch_Options::dump");
}
// Static initialization.
// Note: these three objects require static construction and destruction.
/* static */
ACE_Synch_Options ACE_Synch_Options::defaults;
/* static */
ACE_Synch_Options ACE_Synch_Options::synch;
/* static */
ACE_Synch_Options ACE_Synch_Options::asynch (ACE_Synch_Options::USE_REACTOR);
ACE_Synch_Options::ACE_Synch_Options (u_long options,
const ACE_Time_Value &timeout,
const void *arg)
{
// ACE_TRACE ("ACE_Synch_Options::ACE_Synch_Options");
this->set (options, timeout, arg);
}
void
ACE_Synch_Options::set (u_long options,
const ACE_Time_Value &timeout,
const void *arg)
{
// ACE_TRACE ("ACE_Synch_Options::set");
this->options_ = options;
this->timeout_ = (ACE_Time_Value &) timeout;
// Whoa, possible dependence on static initialization here. This
// function is called during initialization of the statics above.
// But, ACE_Time_Value::zero is a static object. Very fortunately,
// its bits have a value of 0.
if (this->timeout_ != ACE_Time_Value::zero)
ACE_SET_BITS (this->options_, ACE_Synch_Options::USE_TIMEOUT);
this->arg_ = arg;
}
int
ACE_Synch_Options::operator[] (u_long option) const
{
ACE_TRACE ("ACE_Synch_Options::operator[]");
return (this->options_ & option) != 0;
}
void
ACE_Synch_Options::operator= (u_long option)
{
ACE_TRACE ("ACE_Synch_Options::operator=");
this->options_ |= option;
}
const ACE_Time_Value &
ACE_Synch_Options::timeout (void) const
{
ACE_TRACE ("ACE_Synch_Options::timeout");
return this->timeout_;
}
void
ACE_Synch_Options::timeout (ACE_Time_Value &tv)
{
ACE_TRACE ("ACE_Synch_Options::timeout");
this->timeout_ = tv;
}
const ACE_Time_Value *
ACE_Synch_Options::time_value (void) const
{
ACE_TRACE ("ACE_Synch_Options::time_value");
return (*this)[USE_TIMEOUT] ? &this->timeout_ : 0;
}
const void *
ACE_Synch_Options::arg (void) const
{
ACE_TRACE ("ACE_Synch_Options::arg");
return this->arg_;
}
void
ACE_Synch_Options::arg (const void *a)
{
ACE_TRACE ("ACE_Synch_Options::arg");
this->arg_ = a;
}
|