8#ifndef INCLUDED_BSLS_ATOMIC
9#define INCLUDED_BSLS_ATOMIC
726#include <bsls_atomicoperations.h>
747 AtomicOperations::AtomicTypes::Int d_value;
815 void store(
int value);
841 int swap(
int swapValue);
870 operator int()
const;
899 AtomicOperations::AtomicTypes::Int64 d_value;
1053 AtomicOperations::AtomicTypes::Uint d_value;
1109 unsigned int add(
unsigned int value);
1114 unsigned int addAcqRel(
unsigned int value);
1122 void store(
unsigned int value);
1134 unsigned int subtract(
unsigned int value);
1148 unsigned int swap(
unsigned int swapValue);
1153 unsigned int swapAcqRel(
unsigned int swapValue);
1162 unsigned int testAndSwap(
unsigned int compareValue,
1163 unsigned int swapValue);
1174 unsigned int swapValue);
1179 operator unsigned int()
const;
1182 unsigned int load()
const;
1208 AtomicOperations::AtomicTypes::Uint64 d_value;
1361template <
class TYPE>
1374 typedef char AtomicPointer_PointerSizeCheck[
1375 sizeof(TYPE *) ==
sizeof(
void *) ? 1 : -1];
1377 template <
class TYPE1>
1378 struct RemoveConst {
typedef TYPE1 Type; };
1379 template <
class TYPE1>
1380 struct RemoveConst<TYPE1 const> {
typedef TYPE1 Type; };
1382 typedef typename RemoveConst<TYPE>::Type NcType;
1385 AtomicOperations::AtomicTypes::Pointer d_value;
1465 operator TYPE*()
const;
1497 AtomicOperations::AtomicTypes::Int d_value;
1528 void store(
bool value);
1540 bool swap(
bool swapValue);
1554 bool testAndSwap(
bool compareValue,
bool swapValue);
1569 operator bool()
const;
1599 AtomicOperations_Imp::initInt(&d_value, 0);
1605 AtomicOperations_Imp::initInt(&d_value, value);
1612 AtomicOperations_Imp::setInt(&d_value, value);
1619 return AtomicOperations_Imp::addIntNv(&d_value, value);
1625 return AtomicOperations_Imp::subtractIntNv(&d_value, value);
1631 return AtomicOperations_Imp::incrementIntNv(&d_value);
1637 return static_cast<int>(
1638 static_cast<unsigned int>(
1639 AtomicOperations_Imp::incrementIntNv(&d_value)) - 1);
1645 return AtomicOperations_Imp::decrementIntNv(&d_value);
1651 return static_cast<int>(
1652 static_cast<unsigned int>(
1653 AtomicOperations_Imp::decrementIntNv(&d_value)) + 1);
1659 return AtomicOperations_Imp::addIntNv(&d_value, value);
1665 return AtomicOperations_Imp::addIntNvAcqRel(&d_value, value);
1671 return AtomicOperations_Imp::addIntNvRelaxed(&d_value, value);
1677 AtomicOperations_Imp::setInt(&d_value, value);
1683 AtomicOperations_Imp::setIntRelaxed(&d_value, value);
1689 AtomicOperations_Imp::setIntRelease(&d_value, value);
1695 return AtomicOperations_Imp::subtractIntNv(&d_value, value);
1701 return AtomicOperations_Imp::subtractIntNvAcqRel(&d_value, value);
1707 return AtomicOperations_Imp::subtractIntNvRelaxed(&d_value, value);
1713 return AtomicOperations_Imp::swapInt(&d_value, swapValue);
1719 return AtomicOperations_Imp::swapIntAcqRel(&d_value, swapValue);
1725 return AtomicOperations_Imp::testAndSwapInt(&d_value,
1733 return AtomicOperations_Imp::testAndSwapIntAcqRel(&d_value,
1741AtomicInt::operator int()
const
1743 return AtomicOperations_Imp::getInt(&d_value);
1749 return this->
operator int();
1755 return AtomicOperations_Imp::getIntAcquire(&d_value);
1761 return AtomicOperations_Imp::getIntRelaxed(&d_value);
1772 AtomicOperations_Imp::initInt64(&d_value, 0);
1778 AtomicOperations_Imp::initInt64(&d_value, value);
1785 AtomicOperations_Imp::setInt64(&d_value, value);
1792 return AtomicOperations_Imp::addInt64Nv(&d_value, value);
1798 return AtomicOperations_Imp::subtractInt64Nv(&d_value, value);
1804 return AtomicOperations_Imp::incrementInt64Nv(&d_value);
1812 AtomicOperations_Imp::incrementInt64Nv(&d_value)) - 1);
1818 return AtomicOperations_Imp::decrementInt64Nv(&d_value);
1826 AtomicOperations_Imp::decrementInt64Nv(&d_value)) + 1);
1832 return AtomicOperations_Imp::addInt64Nv(&d_value, value);
1838 return AtomicOperations_Imp::addInt64NvAcqRel(&d_value, value);
1844 return AtomicOperations_Imp::addInt64NvRelaxed(&d_value, value);
1850 AtomicOperations_Imp::setInt64(&d_value, value);
1856 AtomicOperations_Imp::setInt64Relaxed(&d_value, value);
1862 AtomicOperations_Imp::setInt64Release(&d_value, value);
1868 return AtomicOperations_Imp::subtractInt64Nv(&d_value, value);
1874 return AtomicOperations_Imp::subtractInt64NvAcqRel(&d_value, value);
1880 return AtomicOperations_Imp::subtractInt64NvRelaxed(&d_value, value);
1886 return AtomicOperations_Imp::swapInt64(&d_value, swapValue);
1892 return AtomicOperations_Imp::swapInt64AcqRel(&d_value, swapValue);
1900 return AtomicOperations_Imp::testAndSwapInt64(&d_value,
1910 return AtomicOperations_Imp::testAndSwapInt64AcqRel(&d_value,
1919 return AtomicOperations_Imp::getInt64(&d_value);
1931 return AtomicOperations_Imp::getInt64Acquire(&d_value);
1937 return AtomicOperations_Imp::getInt64Relaxed(&d_value);
1948 AtomicOperations_Imp::initUint(&d_value, 0);
1954 AtomicOperations_Imp::initUint(&d_value, value);
1961 AtomicOperations_Imp::setUint(&d_value, value);
1968 return AtomicOperations_Imp::addUintNv(&d_value, value);
1974 return AtomicOperations_Imp::subtractUintNv(&d_value, value);
1980 return AtomicOperations_Imp::incrementUintNv(&d_value);
1986 return AtomicOperations_Imp::incrementUintNv(&d_value) - 1;
1992 return AtomicOperations_Imp::decrementUintNv(&d_value);
1998 return AtomicOperations_Imp::decrementUintNv(&d_value) + 1;
2004 return AtomicOperations_Imp::addUintNv(&d_value, value);
2010 return AtomicOperations_Imp::addUintNvAcqRel(&d_value, value);
2016 return AtomicOperations_Imp::addUintNvRelaxed(&d_value, value);
2022 AtomicOperations_Imp::setUint(&d_value, value);
2028 AtomicOperations_Imp::setUintRelaxed(&d_value, value);
2034 AtomicOperations_Imp::setUintRelease(&d_value, value);
2040 return AtomicOperations_Imp::subtractUintNv(&d_value, value);
2046 return AtomicOperations_Imp::subtractUintNvAcqRel(&d_value, value);
2052 return AtomicOperations_Imp::subtractUintNvRelaxed(&d_value, value);
2058 return AtomicOperations_Imp::swapUint(&d_value, swapValue);
2064 return AtomicOperations_Imp::swapUintAcqRel(&d_value, swapValue);
2069 unsigned int swapValue)
2071 return AtomicOperations_Imp::testAndSwapUint(&d_value,
2078 unsigned int swapValue)
2080 return AtomicOperations_Imp::testAndSwapUintAcqRel(&d_value,
2088AtomicUint::operator
unsigned int()
const
2090 return AtomicOperations_Imp::getUint(&d_value);
2096 return this->
operator unsigned int();
2102 return AtomicOperations_Imp::getUintAcquire(&d_value);
2108 return AtomicOperations_Imp::getUintRelaxed(&d_value);
2119 AtomicOperations_Imp::initUint64(&d_value, 0);
2125 AtomicOperations_Imp::initUint64(&d_value, value);
2132 AtomicOperations_Imp::setUint64(&d_value, value);
2139 return AtomicOperations_Imp::addUint64Nv(&d_value, value);
2145 return AtomicOperations_Imp::subtractUint64Nv(&d_value, value);
2151 return AtomicOperations_Imp::incrementUint64Nv(&d_value);
2157 return AtomicOperations_Imp::incrementUint64Nv(&d_value) - 1;
2163 return AtomicOperations_Imp::decrementUint64Nv(&d_value);
2169 return AtomicOperations_Imp::decrementUint64Nv(&d_value) + 1;
2175 return AtomicOperations_Imp::addUint64Nv(&d_value, value);
2181 return AtomicOperations_Imp::addUint64NvAcqRel(&d_value, value);
2187 return AtomicOperations_Imp::addUint64NvRelaxed(&d_value, value);
2193 AtomicOperations_Imp::setUint64(&d_value, value);
2199 AtomicOperations_Imp::setUint64Relaxed(&d_value, value);
2205 AtomicOperations_Imp::setUint64Release(&d_value, value);
2211 return AtomicOperations_Imp::subtractUint64Nv(&d_value, value);
2217 return AtomicOperations_Imp::subtractUint64NvAcqRel(&d_value, value);
2223 return AtomicOperations_Imp::subtractUint64NvRelaxed(&d_value, value);
2229 return AtomicOperations_Imp::swapUint64(&d_value, swapValue);
2235 return AtomicOperations_Imp::swapUint64AcqRel(&d_value, swapValue);
2242 return AtomicOperations_Imp::testAndSwapUint64(&d_value,
2251 return AtomicOperations_Imp::testAndSwapUint64AcqRel(&d_value,
2260 return AtomicOperations_Imp::getUint64(&d_value);
2272 return AtomicOperations_Imp::getUint64Acquire(&d_value);
2278 return AtomicOperations_Imp::getUint64Relaxed(&d_value);
2286template <
class TYPE>
2290 AtomicOperations_Imp::initPointer(&d_value, 0);
2293template <
class TYPE>
2297 AtomicOperations_Imp::initPointer(
2299 reinterpret_cast<void *
>(
const_cast<NcType *
>(value)));
2303template <
class TYPE>
2308 AtomicOperations_Imp::setPtr(
2310 reinterpret_cast<void *
>(
const_cast<NcType *
>(value)));
2314template <
class TYPE>
2318 AtomicOperations_Imp::setPtr(
2320 reinterpret_cast<void *
>(
const_cast<NcType *
>(value)));
2323template <
class TYPE>
2327 AtomicOperations_Imp::setPtrRelaxed(
2329 reinterpret_cast<void *
>(
const_cast<NcType *
>(value)));
2332template <
class TYPE>
2336 AtomicOperations_Imp::setPtrRelease(
2338 reinterpret_cast<void *
>(
const_cast<NcType *
>(value)));
2341template <
class TYPE>
2345 return reinterpret_cast<TYPE *
>(
2346 AtomicOperations_Imp::swapPtr(
2348 reinterpret_cast<void *
>(
const_cast<NcType *
>(swapValue))));
2351template <
class TYPE>
2355 return reinterpret_cast<TYPE *
>(
2356 AtomicOperations_Imp::swapPtrAcqRel(
2358 reinterpret_cast<void *
>(
const_cast<NcType *
>(swapValue))));
2361template <
class TYPE>
2366 return reinterpret_cast<TYPE *
>(
2367 AtomicOperations_Imp::testAndSwapPtr(
2369 reinterpret_cast<void *
>(
const_cast<NcType *
>(compareValue)),
2370 reinterpret_cast<void *
>(
const_cast<NcType *
>(swapValue))));
2373template <
class TYPE>
2378 return reinterpret_cast<TYPE *
>(
2379 AtomicOperations_Imp::testAndSwapPtrAcqRel(
2381 reinterpret_cast<void *
>(
const_cast<NcType *
>(compareValue)),
2382 reinterpret_cast<void *
>(
const_cast<NcType *
>(swapValue))));
2386template <
class TYPE>
2390 return static_cast<TYPE *
>(AtomicOperations_Imp::getPtr(&d_value));
2393template <
class TYPE>
2397 return *(
static_cast<TYPE *
>(AtomicOperations_Imp::getPtr(&d_value)));
2400template <
class TYPE>
2404 return static_cast<TYPE *
>(AtomicOperations_Imp::getPtr(&d_value));
2407template <
class TYPE>
2411 return this->
operator TYPE*();
2414template <
class TYPE>
2418 return static_cast<TYPE *
>(AtomicOperations_Imp::getPtrAcquire(&d_value));
2421template <
class TYPE>
2425 return static_cast<TYPE *
>(AtomicOperations_Imp::getPtrRelaxed(&d_value));
2436 AtomicOperations_Imp::initInt(&d_value, AtomicBool::e_FALSE);
2442 AtomicOperations_Imp::initInt(
2444 value ? AtomicBool::e_TRUE : AtomicBool::e_FALSE);
2451 AtomicOperations_Imp::setInt(
2453 value ? AtomicBool::e_TRUE : AtomicBool::e_FALSE);
2460 AtomicOperations_Imp::setInt(
2462 value ? AtomicBool::e_TRUE : AtomicBool::e_FALSE);
2468 AtomicOperations_Imp::setIntRelaxed(
2470 value ? AtomicBool::e_TRUE : AtomicBool::e_FALSE);
2476 AtomicOperations_Imp::setIntRelease(
2478 value ? AtomicBool::e_TRUE : AtomicBool::e_FALSE);
2484 return AtomicOperations_Imp::swapInt(
2486 swapValue ? AtomicBool::e_TRUE : AtomicBool::e_FALSE)
2487 == AtomicBool::e_TRUE;
2493 return AtomicOperations_Imp::swapIntAcqRel(
2495 swapValue ? AtomicBool::e_TRUE : AtomicBool::e_FALSE)
2496 == AtomicBool::e_TRUE;
2502 return AtomicOperations_Imp::testAndSwapInt(
2504 compareValue ? AtomicBool::e_TRUE : AtomicBool::e_FALSE,
2505 swapValue ? AtomicBool::e_TRUE : AtomicBool::e_FALSE)
2506 == AtomicBool::e_TRUE;
2512 return AtomicOperations_Imp::testAndSwapIntAcqRel(
2514 compareValue ? AtomicBool::e_TRUE : AtomicBool::e_FALSE,
2515 swapValue ? AtomicBool::e_TRUE : AtomicBool::e_FALSE)
2516 == AtomicBool::e_TRUE;
2522AtomicBool::operator bool()
const
2524 return AtomicOperations_Imp::getInt(&d_value) == AtomicBool::e_TRUE;
2530 return this->
operator bool();
2536 return AtomicOperations_Imp::getIntAcquire(&d_value) == AtomicBool::e_TRUE;
2542 return AtomicOperations_Imp::getIntRelaxed(&d_value) == AtomicBool::e_TRUE;
Definition bsls_atomic.h:1490
void storeRelease(bool value)
Definition bsls_atomic.h:2474
bool swap(bool swapValue)
Definition bsls_atomic.h:2482
void store(bool value)
Definition bsls_atomic.h:2458
AtomicBool()
Create an atomic boolean object having the default value false.
Definition bsls_atomic.h:2434
bool testAndSwap(bool compareValue, bool swapValue)
Definition bsls_atomic.h:2500
bool loadRelaxed() const
Definition bsls_atomic.h:2540
bool load() const
Return the current value of this object.
Definition bsls_atomic.h:2528
bool swapAcqRel(bool swapValue)
Definition bsls_atomic.h:2491
bool testAndSwapAcqRel(bool compareValue, bool swapValue)
Definition bsls_atomic.h:2510
void storeRelaxed(bool value)
Definition bsls_atomic.h:2466
bool loadAcquire() const
Definition bsls_atomic.h:2534
Definition bsls_atomic.h:896
Types::Int64 swap(Types::Int64 swapValue)
Definition bsls_atomic.h:1884
Types::Int64 operator-=(Types::Int64 value)
Definition bsls_atomic.h:1796
Types::Int64 operator++()
Definition bsls_atomic.h:1802
Types::Int64 loadRelaxed() const
Definition bsls_atomic.h:1935
Types::Int64 subtract(Types::Int64 value)
Definition bsls_atomic.h:1866
Types::Int64 add(Types::Int64 value)
Definition bsls_atomic.h:1830
Types::Int64 operator--()
Definition bsls_atomic.h:1816
Types::Int64 load() const
Return the current value of this object.
Definition bsls_atomic.h:1923
AtomicInt64()
Create an atomic 64-bit integer object having the default value 0.
Definition bsls_atomic.h:1770
Types::Int64 operator+=(Types::Int64 value)
Definition bsls_atomic.h:1790
Types::Int64 addRelaxed(Types::Int64 value)
Definition bsls_atomic.h:1842
Types::Int64 subtractAcqRel(Types::Int64 value)
Definition bsls_atomic.h:1872
Types::Int64 testAndSwapAcqRel(Types::Int64 compareValue, Types::Int64 swapValue)
Definition bsls_atomic.h:1907
void storeRelaxed(Types::Int64 value)
Definition bsls_atomic.h:1854
Types::Int64 addAcqRel(Types::Int64 value)
Definition bsls_atomic.h:1836
Types::Int64 subtractRelaxed(Types::Int64 value)
Definition bsls_atomic.h:1878
Types::Int64 loadAcquire() const
Definition bsls_atomic.h:1929
Types::Int64 testAndSwap(Types::Int64 compareValue, Types::Int64 swapValue)
Definition bsls_atomic.h:1897
void store(Types::Int64 value)
Definition bsls_atomic.h:1848
Types::Int64 swapAcqRel(Types::Int64 swapValue)
Definition bsls_atomic.h:1890
void storeRelease(Types::Int64 value)
Definition bsls_atomic.h:1860
Definition bsls_atomic.h:744
int subtractAcqRel(int value)
Definition bsls_atomic.h:1699
int operator--()
Definition bsls_atomic.h:1643
int loadAcquire() const
Definition bsls_atomic.h:1753
void storeRelease(int value)
Definition bsls_atomic.h:1687
int swapAcqRel(int swapValue)
Definition bsls_atomic.h:1717
int operator-=(int value)
Definition bsls_atomic.h:1623
AtomicInt()
Create an atomic integer object having the default value 0.
Definition bsls_atomic.h:1597
int addRelaxed(int value)
Definition bsls_atomic.h:1669
void store(int value)
Definition bsls_atomic.h:1675
int operator+=(int value)
Definition bsls_atomic.h:1617
int swap(int swapValue)
Definition bsls_atomic.h:1711
int loadRelaxed() const
Definition bsls_atomic.h:1759
int addAcqRel(int value)
Definition bsls_atomic.h:1663
int subtract(int value)
Definition bsls_atomic.h:1693
int testAndSwapAcqRel(int compareValue, int swapValue)
Definition bsls_atomic.h:1731
void storeRelaxed(int value)
Definition bsls_atomic.h:1681
int subtractRelaxed(int value)
Definition bsls_atomic.h:1705
int load() const
Return the current value of this object.
Definition bsls_atomic.h:1747
int operator++()
Definition bsls_atomic.h:1629
int add(int value)
Definition bsls_atomic.h:1657
int testAndSwap(int compareValue, int swapValue)
Definition bsls_atomic.h:1723
Definition bsls_atomic.h:1362
void store(TYPE *value)
Definition bsls_atomic.h:2316
void storeRelaxed(TYPE *value)
Definition bsls_atomic.h:2325
AtomicPointer(TYPE *value)
Create an atomic pointer object having the specified value.
Definition bsls_atomic.h:2295
void storeRelease(TYPE *value)
Definition bsls_atomic.h:2334
TYPE * swap(TYPE *swapValue)
Definition bsls_atomic.h:2343
TYPE & operator*() const
Definition bsls_atomic.h:2395
TYPE * swapAcqRel(TYPE *swapValue)
Definition bsls_atomic.h:2353
TYPE * operator->() const
Return the current value of this object.
Definition bsls_atomic.h:2402
AtomicPointer()
Create an atomic pointer object having the default value NULL.
Definition bsls_atomic.h:2288
TYPE * loadRelaxed() const
Definition bsls_atomic.h:2423
TYPE * loadAcquire() const
Definition bsls_atomic.h:2416
TYPE * load() const
Return the current value of this object.
Definition bsls_atomic.h:2409
TYPE * testAndSwapAcqRel(const TYPE *compareValue, TYPE *swapValue)
Definition bsls_atomic.h:2375
AtomicPointer< TYPE > & operator=(TYPE *value)
Definition bsls_atomic.h:2306
TYPE * testAndSwap(const TYPE *compareValue, TYPE *swapValue)
Definition bsls_atomic.h:2363
Definition bsls_atomic.h:1205
AtomicUint64()
Definition bsls_atomic.h:2117
Types::Uint64 addRelaxed(Types::Uint64 value)
Definition bsls_atomic.h:2185
Types::Uint64 testAndSwapAcqRel(Types::Uint64 compareValue, Types::Uint64 swapValue)
Definition bsls_atomic.h:2248
Types::Uint64 operator+=(Types::Uint64 value)
Definition bsls_atomic.h:2137
Types::Uint64 loadRelaxed() const
Definition bsls_atomic.h:2276
Types::Uint64 subtractAcqRel(Types::Uint64 value)
Definition bsls_atomic.h:2215
Types::Uint64 swap(Types::Uint64 swapValue)
Definition bsls_atomic.h:2227
Types::Uint64 testAndSwap(Types::Uint64 compareValue, Types::Uint64 swapValue)
Definition bsls_atomic.h:2239
Types::Uint64 subtract(Types::Uint64 value)
Definition bsls_atomic.h:2209
Types::Uint64 loadAcquire() const
Definition bsls_atomic.h:2270
Types::Uint64 swapAcqRel(Types::Uint64 swapValue)
Definition bsls_atomic.h:2233
Types::Uint64 subtractRelaxed(Types::Uint64 value)
Definition bsls_atomic.h:2221
Types::Uint64 operator--()
Definition bsls_atomic.h:2161
void storeRelease(Types::Uint64 value)
Definition bsls_atomic.h:2203
Types::Uint64 addAcqRel(Types::Uint64 value)
Definition bsls_atomic.h:2179
void store(Types::Uint64 value)
Definition bsls_atomic.h:2191
Types::Uint64 operator-=(Types::Uint64 value)
Definition bsls_atomic.h:2143
Types::Uint64 add(Types::Uint64 value)
Definition bsls_atomic.h:2173
Types::Uint64 operator++()
Definition bsls_atomic.h:2149
Types::Uint64 load() const
Return the current value of this object.
Definition bsls_atomic.h:2264
void storeRelaxed(Types::Uint64 value)
Definition bsls_atomic.h:2197
Definition bsls_atomic.h:1050
unsigned int swap(unsigned int swapValue)
Definition bsls_atomic.h:2056
unsigned int load() const
Return the current value of this object.
Definition bsls_atomic.h:2094
AtomicUint()
Create an atomic unsigned integer object having the default value 0.
Definition bsls_atomic.h:1946
unsigned int addRelaxed(unsigned int value)
Definition bsls_atomic.h:2014
unsigned int testAndSwapAcqRel(unsigned int compareValue, unsigned int swapValue)
Definition bsls_atomic.h:2077
unsigned int loadAcquire() const
Definition bsls_atomic.h:2100
void storeRelaxed(unsigned int value)
Definition bsls_atomic.h:2026
unsigned int add(unsigned int value)
Definition bsls_atomic.h:2002
unsigned int operator--()
Definition bsls_atomic.h:1990
unsigned int subtractAcqRel(unsigned int value)
Definition bsls_atomic.h:2044
unsigned int testAndSwap(unsigned int compareValue, unsigned int swapValue)
Definition bsls_atomic.h:2068
void store(unsigned int value)
Definition bsls_atomic.h:2020
unsigned int subtract(unsigned int value)
Definition bsls_atomic.h:2038
unsigned int swapAcqRel(unsigned int swapValue)
Definition bsls_atomic.h:2062
unsigned int subtractRelaxed(unsigned int value)
Definition bsls_atomic.h:2050
unsigned int addAcqRel(unsigned int value)
Definition bsls_atomic.h:2008
unsigned int operator-=(unsigned int value)
Definition bsls_atomic.h:1972
unsigned int loadRelaxed() const
Definition bsls_atomic.h:2106
void storeRelease(unsigned int value)
Definition bsls_atomic.h:2032
unsigned int operator+=(unsigned int value)
Definition bsls_atomic.h:1966
unsigned int operator++()
Definition bsls_atomic.h:1978
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
Definition bdlt_iso8601util.h:707
unsigned long long Uint64
Definition bsls_types.h:139
long long Int64
Definition bsls_types.h:134