activemq-cpp-3.8.2
Main Page
Namespaces
Data Structures
Files
File List
Globals
AtomicInteger.h
Go to the documentation of this file.
1
/*
2
* Licensed to the Apache Software Foundation (ASF) under one or more
3
* contributor license agreements. See the NOTICE file distributed with
4
* this work for additional information regarding copyright ownership.
5
* The ASF licenses this file to You under the Apache License, Version 2.0
6
* (the "License"); you may not use this file except in compliance with
7
* the License. You may obtain a copy of the License at
8
*
9
* http://www.apache.org/licenses/LICENSE-2.0
10
*
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
16
*/
17
18
#ifndef _DECAF_UTIL_CONCURRENT_ATOMIC_ATOMICINTEGER_H_
19
#define _DECAF_UTIL_CONCURRENT_ATOMIC_ATOMICINTEGER_H_
20
21
#include <
decaf/util/Config.h
>
22
#include <
decaf/lang/Number.h
>
23
#include <string>
24
25
namespace
decaf {
26
namespace
util {
27
namespace
concurrent {
28
namespace
atomic {
29
37
class
DECAF_API
AtomicInteger
:
public
decaf::lang::Number
{
38
private
:
39
40
volatile
int
value;
41
42
private
:
43
44
AtomicInteger
(
const
AtomicInteger
&);
45
AtomicInteger
& operator= (
const
AtomicInteger
&);
46
47
public
:
48
52
AtomicInteger
();
53
58
AtomicInteger
(
int
initialValue );
59
60
virtual
~AtomicInteger
() {}
61
66
int
get
()
const
{
67
return
this->value;
68
}
69
74
void
set
(
int
newValue ) {
75
this->value = newValue;
76
}
77
83
int
getAndSet(
int
newValue );
84
94
bool
compareAndSet(
int
expect,
int
update );
95
100
int
getAndIncrement();
101
106
int
getAndDecrement();
107
113
int
getAndAdd(
int
delta );
114
119
int
incrementAndGet();
120
125
int
decrementAndGet();
126
132
int
addAndGet(
int
delta );
133
138
std::string toString()
const
;
139
147
int
intValue()
const
;
148
156
long
long
longValue()
const
;
157
165
float
floatValue()
const
;
166
174
double
doubleValue()
const
;
175
176
};
177
178
}}}}
179
180
#endif
/*_DECAF_UTIL_CONCURRENT_ATOMIC_ATOMICINTEGER_H_ */
Number.h
Config.h
decaf::util::concurrent::atomic::AtomicInteger
An int value that may be updated atomically.
Definition:
AtomicInteger.h:37
decaf::util::concurrent::atomic::AtomicInteger::set
void set(int newValue)
Sets to the given value.
Definition:
AtomicInteger.h:74
decaf::lang::Number
The abstract class Number is the superclass of classes Byte, Double, Float, Integer, Long, and Short.
Definition:
Number.h:35
DECAF_API
#define DECAF_API
Definition:
Config.h:29
decaf::util::concurrent::atomic::AtomicInteger::~AtomicInteger
virtual ~AtomicInteger()
Definition:
AtomicInteger.h:60
src
main
decaf
util
concurrent
atomic
AtomicInteger.h
Generated by
1.8.6