The SavepointVector manages the registered savepoints and their mapping to the stored fields. More...
#include <SavepointVector.h>
Public Types | |
using | savepoint_vector_type = std::vector< std::shared_ptr< SavepointImpl > > |
Vector of savepoints. | |
using | fields_per_savepoint_type = std::unordered_map< std::string, unsigned int > |
Map of fields per savepoint. | |
using | fields_per_savepoint_vector_type = std::vector< fields_per_savepoint_type > |
Vector of map of fields per savepoint. | |
using | iterator = savepoint_vector_type::iterator |
A random access iterator to std::shared_ptr<Savepoint> | |
using | const_iterator = savepoint_vector_type::const_iterator |
A random access iterator to const std::shared_ptr<Savepoint> | |
Public Member Functions | |
SavepointVector () | |
Default constructor (empty) | |
SavepointVector (const SavepointVector &)=default | |
Copy constructor. | |
SavepointVector (SavepointVector &&)=default | |
Move constructor. | |
SavepointVector (const json::json &jsonNode) | |
Construct from JSON. | |
SavepointVector & | operator= (const SavepointVector &)=default |
Copy assignment. | |
SavepointVector & | operator= (SavepointVector &&)=default |
Move assignment. | |
bool | exists (const SavepointImpl &savepoint) const noexcept |
Check if savepoint exists. More... | |
int | find (const SavepointImpl &savepoint) const noexcept |
Find savepoint. More... | |
int | insert (const SavepointImpl &savepoint) noexcept |
Insert savepoint in savepoint vector. More... | |
bool | addField (const SavepointImpl &savepoint, const FieldID &fieldID) noexcept |
Add a field to the savepoint. More... | |
bool | addField (int idx, const FieldID &fieldID) noexcept |
Add a field to the savepoint given a valid savepoint index idx More... | |
bool | hasField (const SavepointImpl &savepoint, const std::string &field) noexcept |
Check if savepoint has field field More... | |
bool | hasField (int idx, const std::string &field) noexcept |
Check if savepoint has field field given a valid savepoint index idx More... | |
FieldID | getFieldID (const SavepointImpl &savepoint, const std::string &field) const |
Get the FielID of field field at savepoint savepoint More... | |
FieldID | getFieldID (int idx, const std::string &field) const |
Get the FielID of field field given a valid savepoint index idx More... | |
const fields_per_savepoint_type & | fieldsOf (const SavepointImpl &savepoint) const |
Access fields of savepoint. More... | |
const fields_per_savepoint_type & | fieldsOf (int idx) const noexcept |
Access fields of savepoint given a valid savepoint index idx | |
bool | empty () const noexcept |
Returns a bool value indicating whether the savepoint vector is empty. | |
std::size_t | size () const noexcept |
Returns the number of savepoints in the vector. | |
void | clear () noexcept |
All the elements Savepoints are dropped: their destructors are called, and they are removed from the container, leaving it with a size of 0. | |
void | swap (SavepointVector &other) noexcept |
Swap with other. | |
iterator | begin () noexcept |
Returns an iterator pointing to the first savepoint in the vector. | |
const_iterator | begin () const noexcept |
iterator | end () noexcept |
Returns an iterator pointing to the past-the-end savepoint in the vector. | |
const_iterator | end () const noexcept |
SavepointImpl & | operator[] (int idx) noexcept |
Get savepoint. | |
const SavepointImpl & | operator[] (int idx) const noexcept |
std::shared_ptr< SavepointImpl > & | back () noexcept |
Returns a reference to the last element in the savepoint vector. | |
const std::shared_ptr< SavepointImpl > & | back () const noexcept |
const savepoint_vector_type & | savepoints () const noexcept |
Access the savepoints. | |
savepoint_vector_type & | savepoints () noexcept |
json::json | toJSON () const |
Convert to JSON. | |
void | fromJSON (const json::json &jsonNode) |
Construct from JSON node. More... | |
Friends | |
std::ostream & | operator<< (std::ostream &stream, const SavepointVector &s) |
Convert to stream. | |
The SavepointVector manages the registered savepoints and their mapping to the stored fields.
The savepoints are ordered in the sequence they were registred.
Definition at line 35 of file SavepointVector.h.
|
noexcept |
Add a field to the savepoint.
Definition at line 31 of file SavepointVector.cpp.
|
noexcept |
Add a field to the savepoint given a valid savepoint index idx
Definition at line 38 of file SavepointVector.cpp.
|
noexcept |
Check if savepoint exists.
Definition at line 74 of file SavepointVector.cpp.
const SavepointVector::fields_per_savepoint_type & serialbox::SavepointVector::fieldsOf | ( | const SavepointImpl & | savepoint | ) | const |
Access fields of savepoint.
Exception | Savepoint does not exists |
Definition at line 89 of file SavepointVector.cpp.
|
noexcept |
Find savepoint.
savepoint
in the savepoint-vector or -1 if savepoint does not exist Definition at line 78 of file SavepointVector.cpp.
void serialbox::SavepointVector::fromJSON | ( | const json::json & | jsonNode | ) |
Construct from JSON node.
Exception | JSON node is ill-formed |
Definition at line 125 of file SavepointVector.cpp.
FieldID serialbox::SavepointVector::getFieldID | ( | const SavepointImpl & | savepoint, |
const std::string & | field | ||
) | const |
Get the FielID of field field
at savepoint savepoint
Exception | Savepoint or field at savepoint do not exist |
Definition at line 60 of file SavepointVector.cpp.
FieldID serialbox::SavepointVector::getFieldID | ( | int | idx, |
const std::string & | field | ||
) | const |
Get the FielID of field field
given a valid savepoint index idx
Exception | Savepoint or field at savepoint do not exist |
Definition at line 53 of file SavepointVector.cpp.
|
noexcept |
Check if savepoint has field field
field
exists at savepoint Definition at line 42 of file SavepointVector.cpp.
|
noexcept |
Check if savepoint has field field
given a valid savepoint index idx
field
exists at savepoint Definition at line 49 of file SavepointVector.cpp.
|
noexcept |
Insert savepoint in savepoint vector.
Definition at line 21 of file SavepointVector.cpp.