19#ifndef DATA_PIECES_STRING_H
20#define DATA_PIECES_STRING_H
23#include "DataPieces.h"
41 defaultString_{std::move(defaultValue)} {}
44 explicit DataPieceString(
const MakerBundle& bundle);
52 return stagedString_.size();
63 void stage(
const string&
string) {
64 stagedString_ = string;
70 stagedString_ = std::move(
string);
90 bool get(
string& outString)
const;
96 defaultString_ = defaultString;
102 defaultString_ = std::move(defaultString);
107 return defaultString_;
112 stagedString_ = defaultString_;
121 return patchedPiece !=
nullptr && (patchedPiece->stage(str),
true);
131 void print(ostream& out,
const string& indent)
const override;
136 void printCompact(ostream& out,
const string& indent)
const override;
157 unique_ptr<DataPiece>
clone()
const override {
158 auto other = std::make_unique<DataPieceString>(
getLabel());
159 other->tags_ = tags_;
160 other->required_ = required_;
161 other->defaultString_ = defaultString_;
168 return cloneString->
get(stagedString_);
172 string stagedString_;
173 string defaultString_;
The DataLayout class describes the data stored inside a DataLayoutContentBlock.
Definition DataLayout.h:209
T * getMappedPiece(size_t pieceIndex) const
Get a typed piece by index in the mapped datalayout, exclusively.
Definition DataLayout.h:524
Abstract class representing a piece of information part of a DataLayout.
Definition DataPieces.h:40
const string & getLabel() const
Definition DataPieces.h:76
DataPiece for variable length string.
Definition DataPieceString.h:36
size_t collectVariableData(int8_t *data, size_t bufferSize) override
Definition DataLayout.cpp:1752
bool copyFrom(const DataPiece *original) override
Set or stage value from another piece known to be of the same type.
Definition DataPieceString.h:166
void setDefault(const string &defaultString)
Definition DataPieceString.h:95
DataPieceString(string label, string defaultValue={})
Definition DataPieceString.h:39
string & stagedValue()
Definition DataPieceString.h:81
bool stageCurrentValue() override
Definition DataPieceString.h:150
size_t getVariableSize() const override
Definition DataPieceString.h:51
void print(ostream &out, const string &indent) const override
Definition DataLayout.cpp:1787
void setDefault(string &&defaultString)
Definition DataPieceString.h:101
const string & getDefault() const
Definition DataPieceString.h:106
bool patchValue(const string &str) const
Definition DataPieceString.h:119
bool isAvailable() const override
Tell if a value is available, in this DataLayout or the mapped DataLayout.
Definition DataLayout.cpp:1782
void stage(const string &string)
Definition DataPieceString.h:63
string get() const
Definition DataLayout.cpp:1760
void stage(string &&string)
Definition DataPieceString.h:69
void initToDefault() override
Stage default value.
Definition DataPieceString.h:111
const string & getElementTypeName() const override
Definition DataLayout.cpp:1747
void printCompact(ostream &out, const string &indent) const override
Definition DataLayout.cpp:1804
unique_ptr< DataPiece > clone() const override
Definition DataPieceString.h:157
void serialize(JsonWrapper &jsonWrapper, const JsonFormatProfileSpec &profile) override
Definition DataLayout.cpp:1817
const string & stagedValue() const
Definition DataPieceString.h:75
bool isSame(const DataPiece *rhs) const override
Definition DataLayout.cpp:1809
Definition Compressor.cpp:113
DataPieceType
Specifier for a type of DataPiece.
Definition DataLayout.h:57
@ String
Variable size array of char, null terminated.