PVData C++ 8.0.7
Loading...
Searching...
No Matches
typemap.h
1/* #define CASE(BASETYPE, PVATYPE, DBFTYPE, PVACODE)
2 *
3 * Helper for switch() on type code
4 *
5 * BASETYPE is suffix of type from epicsTypes.h
6 * epics ## BASETYPE -> eg. epicsUInt8
7 * PVATYPE is storage type
8 * PVATYPE -> eg epics::pvData::uint8
9 * DBFTYPE is suffix of DBF_*
10 * DBF_ ## DBFTYPE -> eg. DBF_UCHAR
11 * PVACODE is suffix of ScalarType enum
12 * epics::pvData::pv ## PVACODE -> epics::pvData::pvUByte
13 */
14CASE(UInt8, epics::pvData::uint8, UCHAR, UByte)
15CASE(Int8, epics::pvData::int8, CHAR, Byte)
16CASE(UInt16, epics::pvData::uint16, USHORT, UShort)
17CASE(Int16, epics::pvData::int16, SHORT, Short)
18CASE(UInt32, epics::pvData::uint32, ULONG, UInt)
19CASE(Int32, epics::pvData::int32, LONG, Int)
20CASE(Float32, float, FLOAT, Float)
21CASE(Float64, double, DOUBLE, Double)
22#ifndef CASE_SKIP_BOOL
23CASE(UInt8, epics::pvData::boolean, UCHAR, Boolean)
24#endif
25#ifdef CASE_REAL_INT64
26CASE(UInt64, epics::pvData::uint64, UINT64, ULong)
27CASE(Int64, epics::pvData::int64, INT64, Long)
28#elif defined(CASE_SQUEEZE_INT64)
29CASE(UInt32, epics::pvData::uint64, ULONG, ULong)
30CASE(Int32, epics::pvData::int64, LONG, Long)
31#else
32/* nothing */
33#endif
34#ifdef CASE_ENUM
35// yes really, Base uses SHORT (16-bit) while PVD uses Int (32-bit)
36CASE(Enum16, epics::pvData::int32, ENUM, Int)
37#endif
38#ifdef CASE_STRING
39CASE(Int8, std::string, CHAR, String)
40#endif
41/* #undef CASE */
uint32_t uint32
Definition pvType.h:99
int32_t int32
Definition pvType.h:83
int16_t int16
Definition pvType.h:79
uint64_t uint64
Definition pvType.h:103
detail::pick_type< int8_t, signedchar, detail::pick_type< uint8_t, char, unsignedchar >::type >::type boolean
Definition pvType.h:71
int8_t int8
Definition pvType.h:75
int64_t int64
Definition pvType.h:87
uint16_t uint16
Definition pvType.h:95
uint8_t uint8
Definition pvType.h:91