MeVisLab Toolbox Reference
|
Class for reading object data from a stream. More...
#include <mlAbstractPersistenceStream.h>
Public Member Functions | |
virtual | ~AbstractPersistenceInputStream () |
int | startStructWithVersion (const char *name=nullptr) |
Starts a struct, returns the version of struct (0 if not given). | |
template<typename T > | |
void | read (std::vector< T > &values, const char *name=nullptr) |
Reads vectors of primitive values from the stream. | |
template<typename T , size_t n, class DataContainer > | |
void | read (FloatingPointVector< T, n, DataContainer > &value, const char *name=nullptr) |
Reads float vectors like vec3f from the stream. | |
template<typename T , size_t n> | |
void | read (TVectorNDBase< T, n > &value, const char *name=nullptr) |
Reads integer vectors like ImageVector from the stream. | |
template<typename T , size_t n> | |
void | read (FloatingPointMatrix< T, n > &value, const char *name=nullptr) |
Reads float matrices like mat4 from the stream. | |
template<typename T > | |
void | readOptional (T &value, const T &defaultValue, const char *name=nullptr) |
Performs optional reading for all above methods. | |
virtual Base * | readObject (const char *name=nullptr) |
Reads Base object from stream. | |
virtual void | readData (std::string &value, const char *name=nullptr)=0 |
Same as readObject for binary data (std::string misused as binary data container). | |
bool | hasNextInStruct (std::string &name) |
Returns true if there is another element in the current struct scope, and if so, sets name to its name. | |
bool | isNextInStruct (const char *name) |
Checks whether an item with the given name comes next in the stream. | |
bool | hasNextListItem () |
Checks whether there is another item in the current list. | |
void | versionCheck (const char *className, int objectVersion, int storedVersion) |
Prints a warning if the storedVersion is greater than the objectVersion. | |
virtual void | read (bool &value, const char *name=nullptr) |
Reads primitive values from the stream. | |
void | read (MLint32 &value, const char *name=nullptr) |
void | read (MLuint32 &value, const char *name=nullptr) |
void | read (MLint64 &value, const char *name=nullptr) |
void | read (MLuint64 &value, const char *name=nullptr) |
void | read (MLfloat &value, const char *name=nullptr) |
void | read (MLdouble &value, const char *name=nullptr) |
void | read (std::string &value, const char *name=nullptr) |
![]() | |
void | startList (const char *name=nullptr, const char *xmlItemName="Item", bool xmlSuppressScope=false) |
Starts a new list of values in the data stream, must be ended with endList(). | |
void | endList () |
Ends reading/writing of the list. | |
void | startStruct (const char *name=nullptr) |
Starts a new struct of values in the data stream, must be ended with endStruct(). | |
void | endStruct () |
Ends reading/writing of struct values. | |
virtual bool | isBinary () const =0 |
Is the stream in a binary format? Otherwise, it is in a human-readable text format. | |
Protected Member Functions | |
AbstractPersistenceInputStream () | |
virtual bool | hasNextInStructImpl (std::string &name)=0 |
Checks whether an item with the given name comes next in the stream. | |
virtual bool | hasNextListItemImpl ()=0 |
Checks whether there is another item in the current list. | |
virtual void | readString (const char *name, std::string &value)=0 |
Abstract reading method that needs to be implemented by derived classes. | |
virtual void | formatError (const std::string &msg) |
Indicates format error, by default, throw an exception. | |
virtual bool | getObjectID (int &id)=0 |
Implementation of Base object persistence, get attribute of currently open struct. | |
virtual bool | getObjectType (std::string &type)=0 |
Returns base type. | |
virtual bool | getObjectVersion (int &version)=0 |
Returns persistence version. | |
virtual void | readValues (const char *name, size_t expected, std::vector< MLint32 > &values)=0 |
Abstract reading methods that need to be implemented by derived classes. | |
virtual void | readValues (const char *name, size_t expected, std::vector< MLuint32 > &values)=0 |
virtual void | readValues (const char *name, size_t expected, std::vector< MLint64 > &values)=0 |
virtual void | readValues (const char *name, size_t expected, std::vector< MLuint64 > &values)=0 |
virtual void | readValues (const char *name, size_t expected, std::vector< MLfloat > &values)=0 |
virtual void | readValues (const char *name, size_t expected, std::vector< MLdouble > &values)=0 |
![]() | |
AbstractPersistenceStream () | |
virtual | ~AbstractPersistenceStream () |
virtual void | nameCheck (const char *name) |
Checks whether the name is provided when being in a subgroup, or that no name is provided when being in a list. | |
bool | isInList () const |
Checks whether the stream is currently in 'list' mode. Otherwise, it is in 'struct' mode. | |
size_t | nestingDepth () const |
Returns depth of nesting stack (created by startList/startStruct), used to check nesting rules. | |
virtual void | internalError (const char *msg, const char *arg=nullptr) |
Logs an internal error. Usually called to indicate wrong usage of interface. | |
virtual void | startListImpl (const char *name, const char *xmlItemName, bool xmlSuppressScope)=0 |
Abstract methods called by above methods, needs to be implemented in derived classes. | |
virtual void | endListImpl ()=0 |
virtual void | startStructImpl (const char *name)=0 |
virtual void | endStructImpl ()=0 |
Class for reading object data from a stream.
This class has read methods for the types bool, MLint32, MLuint32, MLint64, MLuint64, float, double, std::string, and all vector and matrix types from MLLinearAlgebra. You can also read binary data (with readData()) and Base objects (with readObject()) from the stream.
You can use the readOptional() methods if a data item does not need to exist on the stream, but this is for convenience. You can always check with isNextInStruct() (for structure scopes) or hasNextListItem() (for list scopes) if the next item in the stream is as you expect. There is also the hasNextInStruct() method for getting the next item's name in a structure scope.
Definition at line 238 of file mlAbstractPersistenceStream.h.
|
inlinevirtual |
Definition at line 241 of file mlAbstractPersistenceStream.h.
|
inlineprotected |
Definition at line 338 of file mlAbstractPersistenceStream.h.
|
protectedvirtual |
Indicates format error, by default, throw an exception.
Reimplemented in ml::XMLPersistenceInputStream.
Implementation of Base object persistence, get attribute of currently open struct.
Returns unique ID of object - currently unused.
Implemented in ml::XMLPersistenceInputStream.
|
protectedpure virtual |
Returns base type.
Implemented in ml::XMLPersistenceInputStream.
|
protectedpure virtual |
Returns persistence version.
Implemented in ml::XMLPersistenceInputStream.
bool ml::AbstractPersistenceInputStream::hasNextInStruct | ( | std::string & | name | ) |
Returns true
if there is another element in the current struct scope, and if so, sets name to its name.
|
protectedpure virtual |
Checks whether an item with the given name
comes next in the stream.
The stream is guaranteed to be in a 'struct' scope.
Implemented in ml::XMLPersistenceInputStream.
bool ml::AbstractPersistenceInputStream::hasNextListItem | ( | ) |
Checks whether there is another item in the current list.
The stream must be in a 'list' scope.
Checks whether there is another item in the current list.
The stream is guaranteed to be in a 'list' scope.
Implemented in ml::XMLPersistenceInputStream.
Checks whether an item with the given name comes next in the stream.
The stream must be in a 'struct' scope.
|
virtual |
Reads primitive values from the stream.
Note: the default implementation reads bools as MLint32 - use binary formats if it needs to be more efficient.
|
inline |
Reads float matrices like mat4 from the stream.
Definition at line 295 of file mlAbstractPersistenceStream.h.
References mlrange_cast(), and ml::FloatingPointMatrix< VectorT, size >::setValuesFromPtr().
|
inline |
Reads float vectors like vec3f from the stream.
Definition at line 271 of file mlAbstractPersistenceStream.h.
References mlrange_cast().
|
inline |
Reads vectors of primitive values from the stream.
Currently supported are MLint32, MLuint32, MLint64, MLuint64, MLfloat, and MLdouble.
Definition at line 263 of file mlAbstractPersistenceStream.h.
|
inline |
Reads integer vectors like ImageVector from the stream.
Definition at line 283 of file mlAbstractPersistenceStream.h.
References mlrange_cast().
|
pure virtual |
Same as readObject for binary data (std::string misused as binary data container).
Implemented in ml::XMLPersistenceInputStream.
|
virtual |
Reads Base object from stream.
This uses the Base::readFrom() method of the object. Returns NULL if no object is given under name
.
|
inline |
Performs optional reading for all above methods.
If the item is not contained in the stream, the given default value is assigned.
Definition at line 306 of file mlAbstractPersistenceStream.h.
|
protectedpure virtual |
Abstract reading method that needs to be implemented by derived classes.
Implemented in ml::XMLPersistenceInputStream.
|
protectedpure virtual |
Implemented in ml::XMLPersistenceInputStream.
|
protectedpure virtual |
Implemented in ml::XMLPersistenceInputStream.
|
protectedpure virtual |
Abstract reading methods that need to be implemented by derived classes.
If expected size is 0, the returned list may have any size, otherwise exactly that number of elements are returned (or an exception is thrown).
Implemented in ml::XMLPersistenceInputStream.
|
protectedpure virtual |
Implemented in ml::XMLPersistenceInputStream.
|
protectedpure virtual |
Implemented in ml::XMLPersistenceInputStream.
|
protectedpure virtual |
Implemented in ml::XMLPersistenceInputStream.
Starts a struct, returns the version of struct (0 if not given).
void ml::AbstractPersistenceInputStream::versionCheck | ( | const char * | className, |
int | objectVersion, | ||
int | storedVersion ) |
Prints a warning if the storedVersion is greater than the objectVersion.