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>
11
13{
14public:
15 NTNDArrayConverterPvxs(pvxs::Value value);
16 NTNDArrayInfo_t getInfo (void);
17 void toArray (NDArray *dest);
18 void fromArray (NDArray *src);
19
20private:
21 pvxs::Value m_value;
22 std::unordered_map<std::type_index, NDAttrDataType_t> m_typeMap;
23 std::unordered_map<std::type_index, std::string> m_fieldNameMap;
24 NDColorMode_t getColorMode (void);
25
26 template <typename arrayType>
27 void toValue (NDArray *dest);
28 void toValue (NDArray *dest);
29
30 void toDimensions (NDArray *dest);
31 void toTimeStamp (NDArray *dest);
32 void toDataTimeStamp (NDArray *dest);
33
34 template <typename valueType>
35 void toAttribute (NDArray *dest, pvxs::Value attribute);
36 void toStringAttribute (NDArray *dest, pvxs::Value attribute);
37 void toUndefinedAttribute (NDArray *dest, pvxs::Value attribute);
38 void toAttributes (NDArray *dest);
39
40 template <typename arrayType>
41 void fromValue (NDArray *src);
42 void fromValue (NDArray *src);
43
44 void fromDimensions (NDArray *src);
45 void fromTimeStamp (NDArray *src);
46 void fromDataTimeStamp (NDArray *src);
47
48 template <typename valueType>
49 void fromAttribute (pvxs::Value destValue, NDAttribute *src);
50 void fromStringAttribute (pvxs::Value destValue, NDAttribute *src);
51 void fromAttributes (NDArray *src);
52};
53
54typedef std::shared_ptr<NTNDArrayConverterPvxs> NTNDArrayConverterPvxsPtr;
55
56#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:13
#define NTNDARRAYCONVERTER_API
Definition ntndArrayConverterAPI.h:25
std::shared_ptr< NTNDArrayConverterPvxs > NTNDArrayConverterPvxsPtr
Definition ntndArrayConverterPvxs.h:54
Definition ntndArrayConverterCommon.h:7