27#include "DataLayout.h"
121 bool getTag(
const string& tagName,
string& outTag)
const;
125 void setTag(
const string& tagName,
const string& tag) {
126 tags_[tagName] = tag;
155 required_ = required;
189 virtual void print(ostream& out,
const string& indent =
"")
const = 0;
194 virtual void printCompact(ostream& out,
const string& indent =
"")
const = 0;
210 virtual unique_ptr<DataPiece>
clone()
const = 0;
217 void setIndexOffset(
size_t pieceIndex,
size_t offset) {
218 pieceIndex_ = pieceIndex;
226 const size_t fixedSize_;
230 map<string, string> tags_;
241inline const string& getTypeName<string>() {
242 static const string sName(
"string");
273#include "DataPieceTypes.h"
275#ifndef DATA_PIECES_ARRAY_H
276#include "DataPieceArray.h"
279#ifndef DATA_PIECES_STRING_H
280#include "DataPieceString.h"
283#ifndef DATA_PIECES_STRING_MAP_H
284#include "DataPieceStringMap.h"
287#ifndef DATA_PIECES_VALUE_H
288#include "DataPieceValue.h"
291#ifndef DATA_PIECES_VECTOR_H
292#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
bool isMapped() const
Definition DataLayout.h:331
static const size_t kNotFound
Special OffsetAndLength offset value marking that a piece of data isn't available.
Definition DataLayout.h:204
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:154
size_t getPieceIndex() const
Definition DataPieces.h:93
bool getDescription(string &outDescription) const
Definition DataPieces.h:143
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:1157
bool isRequired() const
Definition DataPieces.h:160
void setDescription(const string &description)
Definition DataPieces.h:148
virtual bool isSame(const DataPiece *rhs) const
Match signature & properties (default value, min/max, etc).
Definition DataLayout.cpp:810
bool getUnit(string &outUnit) const
Definition DataPieces.h:131
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:1166
virtual void printCompact(ostream &out, const string &indent="") const =0
virtual void initToDefault()=0
Initialize (set or stage) the DataPiece to its default value.
virtual size_t collectVariableData(int8_t *data, size_t bufferSize)=0
virtual bool copyFrom(const DataPiece *original)=0
Set or stage value from another piece known to be of the same type.
virtual bool stageCurrentValue()
Definition DataPieces.h:204
virtual void serialize(JsonWrapper &jsonWrapper, const JsonFormatProfileSpec &profile)
Definition DataLayout.cpp:1190
bool hasFixedSize() const
Definition DataPieces.h:109
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:1186
size_t getOffset() const
Definition DataPieces.h:104
DataPieceType getPieceType() const
Definition DataPieces.h:81
const string & getLabel() const
Definition DataPieces.h:76
const DataLayout & getDataLayout() const
Definition DataPieces.h:71
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
bool isMapped() const
Tells if the DataPiece is mapped to another DataPiece in a mapped DataLayout.
Definition DataPieces.h:182
void setUnit(const string &unit)
Definition DataPieces.h:136
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:125
size_t getFixedSize() const
Definition DataPieces.h:114
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:266
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:260
DataPieceType
Specifier for a type of DataPiece.
Definition DataLayout.h:57
Definition DataLayout.cpp:1178
Template to represent some POD object without memory alignment.
Definition DataPieces.h:253