areaDetector 3-14
EPICS areaDetector framework
ntndArrayConverterPvxs.h
Go to the documentation of this file.
1#ifndef INC_ntndArrayConverterPvxs_H
2#define INC_ntndArrayConverterPvxs_H
3#include <math.h>
4
6#include <pvxs/data.h>
7#include <typeindex>
8#include <typeinfo>
9#include <unordered_map>
11using namespace pvxs;
12
14{
15public:
16 NTNDArrayConverterPvxs(Value value);
17 NTNDArrayInfo_t getInfo (void);
18 void toArray (NDArray *dest);
19 void fromArray (NDArray *src);
20
21private:
22 Value m_value;
23 Value m_Int8Value;
24 Value m_UInt8Value;
25 Value m_Int16Value;
26 Value m_UInt16Value;
27 Value m_Int32Value;
28 Value m_UInt32Value;
29 Value m_Int64Value;
30 Value m_UInt64Value;
31 Value m_Float32Value;
32 Value m_Float64Value;
33
34 std::unordered_map<std::type_index, NDAttrDataType_t> m_typeMap;
35 std::unordered_map<std::type_index, std::string> m_fieldNameMap;
36 NDColorMode_t getColorMode (void);
37
38 template <typename arrayType>
39 void toValue (NDArray *dest);
40 void toValue (NDArray *dest);
41
42 void toDimensions (NDArray *dest);
43 void toTimeStamp (NDArray *dest);
44 void toDataTimeStamp (NDArray *dest);
45
46 template <typename valueType>
47 void toAttribute (NDArray *dest, Value attribute);
48 void toStringAttribute (NDArray *dest, Value attribute);
49 void toUndefinedAttribute (NDArray *dest, Value attribute);
50 void toAttributes (NDArray *dest);
51
52 template <typename arrayType>
53 void fromValue (NDArray *src);
54 void fromValue (NDArray *src);
55
56 void fromDimensions (NDArray *src);
57 void fromTimeStamp (NDArray *src);
58 void fromDataTimeStamp (NDArray *src);
59
60 template <typename valueType>
61 void fromAttribute (Value destValue, Value tempValue, NDAttribute *src);
62 void fromStringAttribute (Value destValue, NDAttribute *src);
63 void fromAttributes (NDArray *src);
64};
65
66typedef std::shared_ptr<NTNDArrayConverterPvxs> NTNDArrayConverterPvxsPtr;
67
68#endif // INC_ntndArrayConverterPvxs_H
NDColorMode_t
Enumeration of color modes for NDArray attribute "colorMode".
Definition NDArray.h:35
N-dimensional array class; each array has a set of dimensions, a data type, pointer to data,...
Definition NDArray.h:99
NDAttribute class; an attribute has a name, description, source type, source string,...
Definition NDAttribute.h:96
Definition ntndArrayConverterPvxs.h:14
#define NTNDARRAYCONVERTER_API
Definition ntndArrayConverterAPI.h:25
std::shared_ptr< NTNDArrayConverterPvxs > NTNDArrayConverterPvxsPtr
Definition ntndArrayConverterPvxs.h:66
Definition ntndArrayConverterCommon.h:7