27#include "DataLayout.h"
113 bool getTag(
const string& tagName,
string& outTag)
const;
117 void setTag(
const string& tagName,
const string& tag) {
118 tags_[tagName] = tag;
147 required_ = required;
177 virtual void print(ostream& out,
const string& indent =
"")
const = 0;
182 virtual void printCompact(ostream& out,
const string& indent =
"")
const = 0;
196 virtual unique_ptr<DataPiece>
clone()
const = 0;
203 void setOffset(
size_t offset) {
211 const size_t fixedSize_;
214 map<string, string> tags_;
225inline const string& getTypeName<string>() {
226 static const string sName(
"string");
257#include "DataPieceTypes.h"
259#ifndef DATA_PIECES_ARRAY_H
260#include "DataPieceArray.h"
263#ifndef DATA_PIECES_STRING_H
264#include "DataPieceString.h"
267#ifndef DATA_PIECES_STRING_MAP_H
268#include "DataPieceStringMap.h"
271#ifndef DATA_PIECES_VALUE_H
272#include "DataPieceValue.h"
275#ifndef DATA_PIECES_VECTOR_H
276#include "DataPieceVector.h"
The DataLayout class describes the data stored inside a DataLayoutContentBlock.
Definition DataLayout.h:191
static const size_t kVariableSize
Special value used for a DataPiece size, telling that that DataPiece has a variable size.
Definition DataLayout.h:206
Abstract class representing a piece of information part of a DataLayout.
Definition DataPieces.h:40
static const string kMinIncrement
Special property name for the minimum increment of the DataPiece.
Definition DataPieces.h:63
void setRequired(bool required=true)
Definition DataPieces.h:146
bool getDescription(string &outDescription) const
Definition DataPieces.h:135
static const string kMaxValue
Special property name for the maximum value of the DataPiece.
Definition DataPieces.h:61
bool getTag(const string &tagName, string &outTag) const
Definition DataLayout.cpp:1093
bool isRequired() const
Definition DataPieces.h:152
void setDescription(const string &description)
Definition DataPieces.h:140
virtual bool isSame(const DataPiece *rhs) const
Match signature & properties (default value, min/max, etc).
Definition DataLayout.cpp:747
bool getUnit(string &outUnit) const
Definition DataPieces.h:123
static const string kMaxIncrement
Special property name for the maximum increment of the DataPiece.
Definition DataPieces.h:65
bool isMatch(const DataPiece &rhs) const
Match signature only.
Definition DataLayout.cpp:1102
virtual void printCompact(ostream &out, const string &indent="") const =0
virtual size_t collectVariableData(int8_t *data, size_t bufferSize)=0
virtual bool stageCurrentValue()
Definition DataPieces.h:192
virtual void serialize(JsonWrapper &jsonWrapper, const JsonFormatProfileSpec &profile)
Definition DataLayout.cpp:1126
bool hasFixedSize() const
Definition DataPieces.h:101
virtual bool isAvailable() const =0
virtual void print(ostream &out, const string &indent="") const =0
static const string kMinValue
Special property name for the minimum value of the DataPiece.
Definition DataPieces.h:59
string getTypeName() const
Definition DataLayout.cpp:1122
size_t getOffset() const
Definition DataPieces.h:96
DataPieceType getPieceType() const
Definition DataPieces.h:81
const string & getLabel() const
Definition DataPieces.h:76
const DataLayout & getDataLayout() const
Definition DataPieces.h:71
virtual bool stageFrom(const DataPiece *original)=0
Stage value from another piece known to be of the same type.
virtual unique_ptr< DataPiece > clone() const =0
Create a new DataPiece of the same type, with the same label.
static const string kDescription
Special tag name to specify a human readable description the DataPiece.
Definition DataPieces.h:56
void setUnit(const string &unit)
Definition DataPieces.h:128
static const string kUnit
Special tag name to specify a unit of the DataPiece.
Definition DataPieces.h:54
void setTag(const string &tagName, const string &tag)
Definition DataPieces.h:117
size_t getFixedSize() const
Definition DataPieces.h:106
virtual size_t getVariableSize() const =0
virtual const string & getElementTypeName() const =0
Definition AsyncDiskFileChunk.hpp:49
void writeUnaligned(void *ptr, const T &value)
Helper to make dereferencing a pointer to write an unaligned POD object safe.
Definition DataPieces.h:250
const string & getTypeName()
Get the name of the type <T>.
T readUnaligned(const void *ptr)
Helper to make dereferencing a pointer to read an unaligned POD object safe.
Definition DataPieces.h:244
DataPieceType
Specifier for a type of DataPiece.
Definition DataLayout.h:57
Definition DataLayout.cpp:1114
Template to represent some POD object without memory alignment.
Definition DataPieces.h:237