blocxx
src
blocxx
Timeout.hpp
Go to the documentation of this file.
1
/*******************************************************************************
2
* Copyright (C) 2005, Vintela, Inc. All rights reserved.
3
* Copyright (C) 2006, Novell, Inc. All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions are met:
7
*
8
* * Redistributions of source code must retain the above copyright notice,
9
* this list of conditions and the following disclaimer.
10
* * Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution.
13
* * Neither the name of
14
* Vintela, Inc.,
15
* nor Novell, Inc.,
16
* nor the names of its contributors or employees may be used to
17
* endorse or promote products derived from this software without
18
* specific prior written permission.
19
*
20
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30
* POSSIBILITY OF SUCH DAMAGE.
31
*******************************************************************************/
32
33
38
#ifndef BLOCXX_TIMEOUT_HPP_INCLUDE_GUARD_
39
#define BLOCXX_TIMEOUT_HPP_INCLUDE_GUARD_
40
41
#include "blocxx/BLOCXX_config.h"
42
#include "
blocxx/CommonFwd.hpp
"
43
#include "
blocxx/DateTime.hpp
"
44
45
namespace
BLOCXX_NAMESPACE
46
{
47
55
class
BLOCXX_COMMON_API
Timeout
56
{
57
public
:
58
static
Timeout
absolute(
const
DateTime
&
dt
);
59
static
Timeout
relative(
float
seconds
);
60
static
Timeout
relativeWithReset(
float
seconds
);
61
62
static
Timeout
infinite
;
63
64
enum
ETimeoutType
65
{
66
E_ABSOLUTE
,
67
E_RELATIVE
,
68
E_RELATIVE_WITH_RESET
69
};
70
71
ETimeoutType getType()
const
;
72
DateTime
getAbsolute()
const
;
73
float
getRelative()
const
;
74
75
private
:
76
// have to use static factory functions to create a Timeout instance
77
Timeout
();
78
Timeout
(ETimeoutType type,
const
DateTime
&
dt
);
79
Timeout
(ETimeoutType type,
float
seconds
);
80
81
ETimeoutType
m_type
;
82
DateTime
m_absolute
;
83
float
m_seconds
;
84
};
85
86
BLOCXX_COMMON_API
bool
operator==
(
const
Timeout
&
x
,
const
Timeout
&
y
);
87
BLOCXX_COMMON_API
bool
operator!=
(
const
Timeout
&
x
,
const
Timeout
&
y
);
88
89
}
// end namespace BLOCXX_NAMESPACE
90
91
#endif
92
93
CommonFwd.hpp
DateTime.hpp
BLOCXX_NAMESPACE::DateTime
The DateTime class is an abstraction for date time data.
Definition
DateTime.hpp:81
BLOCXX_NAMESPACE::Timeout
A timeout can be absolute, which means that it will happen at the specified DateTime.
Definition
Timeout.hpp:56
BLOCXX_NAMESPACE::Timeout::m_absolute
DateTime m_absolute
Definition
Timeout.hpp:82
BLOCXX_NAMESPACE::Timeout::m_seconds
float m_seconds
Definition
Timeout.hpp:83
BLOCXX_NAMESPACE::Timeout::ETimeoutType
ETimeoutType
Definition
Timeout.hpp:65
BLOCXX_NAMESPACE::Timeout::E_RELATIVE
@ E_RELATIVE
Definition
Timeout.hpp:67
BLOCXX_NAMESPACE::Timeout::E_ABSOLUTE
@ E_ABSOLUTE
Definition
Timeout.hpp:66
BLOCXX_NAMESPACE::Timeout::m_type
ETimeoutType m_type
Definition
Timeout.hpp:81
BLOCXX_NAMESPACE::Timeout::infinite
static Timeout infinite
Definition
Timeout.hpp:62
BLOCXX_NAMESPACE
Taken from RFC 1321.
Definition
AppenderLogger.cpp:48
BLOCXX_NAMESPACE::operator==
bool operator==(const Array< T > &x, const Array< T > &y)
Definition
ArrayImpl.hpp:434
BLOCXX_NAMESPACE::operator!=
bool operator!=(const Array< T > &x, const Array< T > &y)
Determine two Arrays are not equal.
Definition
Array.hpp:446
Generated by
1.10.0