ddt  0.1
ddtEncDecMultiDim.hpp
Go to the documentation of this file.
1 // @copyright
2 // (c) Copyright ESO 2020
3 // All Rights Reserved
4 // ESO (eso.org) is an Intergovernmental Organization, and therefore special
5 // legal conditions apply.
6 //
7 // @file ddtMetaDataMultiDim.hpp
8 // @brief DDT EncDecMultiDim. Class to encode / decode multi-dimensional array
9 // data samples.
10 //
11 // Class to encode / decode multi-dimensional array data samples.
12 //
13 // @author Carsten Mannel, CGI
14 // @since 2020/05/30
15 //
16 
17 #ifndef DDT_DATAVISUALISATION_DATATRANSFER_DATATRANSFERLIB_ENCDEC_MULTIDIM_HPP
18 #define DDT_DATAVISUALISATION_DATATRANSFER_DATATRANSFERLIB_ENCDEC_MULTIDIM_HPP
19 
20 #include <boost/interprocess/containers/vector.hpp>
21 
22 #include "MetaData.pb.h"
23 #include "ddt/ddtEncDec.hpp"
24 
25 namespace ip = boost::interprocess;
26 
37 class DdtEncDecMultiDim : public DdtEncDec {
38  public:
42  explicit DdtEncDecMultiDim();
43 
47  void decode(int length, std::vector<uint8_t> metaData);
48 
54  void encode(uint32_t bytes_per_value, uint32_t number_dimensions,
55  std::string array_dimensions, bool byte_order_little_endian,
56  bool last_segment, std::string description, uint32_t data_type);
57 
62 
66  std::vector<uint8_t> getMetaData();
67 
71  uint32_t getBytes_per_value();
72 
76  uint32_t getNumber_dimensions();
77 
82  std::string getArray_dimensions();
83 
88 
92  std::string getUtc_timestamp();
93 
97  bool getLast_segment();
98 
102  std::string getDescription();
103 
107  uint32_t getData_type();
108 
109  protected:
114  ddt::MetaDataMultiDim metadataMultiDim;
115 };
116 
117 #endif // DDT_DATAVISUALISATION_DATATRANSFER_DATATRANSFERLIB_ENCDEC_MULTIDIM_HPP
DdtEncDecMultiDim::getData_type
uint32_t getData_type()
Definition: ddtEncDecMultiDim.cpp:101
DdtEncDecMultiDim::~DdtEncDecMultiDim
~DdtEncDecMultiDim()
DdtEncDecMultiDim::getNumber_dimensions
uint32_t getNumber_dimensions()
Definition: ddtEncDecMultiDim.cpp:89
DdtEncDecMultiDim
Definition: ddtEncDecMultiDim.hpp:37
DdtEncDec
Definition: ddtEncDec.hpp:26
DdtEncDecMultiDim::getBytes_per_value
uint32_t getBytes_per_value()
Definition: ddtEncDecMultiDim.cpp:77
ddtEncDec.hpp
DdtEncDecMultiDim::getDescription
std::string getDescription()
Definition: ddtEncDecMultiDim.cpp:93
DdtEncDecMultiDim::getMetaData
std::vector< uint8_t > getMetaData()
Definition: ddtEncDecMultiDim.cpp:61
DdtEncDecMultiDim::getUtc_timestamp
std::string getUtc_timestamp()
Definition: ddtEncDecMultiDim.cpp:73
DdtEncDecMultiDim::getArray_dimensions
std::string getArray_dimensions()
Definition: ddtEncDecMultiDim.cpp:97
DdtEncDecMultiDim::DdtEncDecMultiDim
DdtEncDecMultiDim()
Definition: ddtEncDecMultiDim.cpp:19
DdtEncDecMultiDim::getByte_order_little_endian
bool getByte_order_little_endian()
Definition: ddtEncDecMultiDim.cpp:81
DdtEncDecMultiDim::getLast_segment
bool getLast_segment()
Definition: ddtEncDecMultiDim.cpp:85
DdtEncDecMultiDim::metadataMultiDim
ddt::MetaDataMultiDim metadataMultiDim
Definition: ddtEncDecMultiDim.hpp:114
DdtEncDecMultiDim::decode
void decode(int length, std::vector< uint8_t > metaData)
Definition: ddtEncDecMultiDim.cpp:24
DdtEncDecMultiDim::encode
void encode(uint32_t bytes_per_value, uint32_t number_dimensions, std::string array_dimensions, bool byte_order_little_endian, bool last_segment, std::string description, uint32_t data_type)
Definition: ddtEncDecMultiDim.cpp:35