Inviwo 0.9.12-pre
Inviwo documentation
Loading...
Searching...
No Matches
inviwo::Serializer Class Reference
+ Inheritance diagram for inviwo::Serializer:

Public Types

template<typename T >
using HasSerialize = decltype(std::declval<const T>().serialize(std::declval<Serializer&>()))
 
- Public Types inherited from inviwo::SerializeBase
using allocator_type = std::pmr::polymorphic_allocator<std::byte>
 

Public Member Functions

 Serializer (const std::filesystem::path &fileName, std::string_view rootElement=SerializeConstants::InviwoWorkspace, allocator_type alloc={})
 Initializes serializer with a file name that will be used to set relative paths to data.
 
void writeFile ()
 Writes serialized data to the file specified by the currently set file name.
 
void writeFile (std::ostream &stream, bool format=false)
 Writes serialized data to stream.
 
void write (std::pmr::string &xml, bool format=false)
 
template<typename T , typename Alloc , typename Pred = util::alwaysTrue, typename Proj = util::identity>
void serialize (std::string_view key, const std::vector< T, Alloc > &sVector, std::string_view itemKey="item", Pred pred={}, Proj proj={})
 
template<typename T >
void serialize (std::string_view key, const std::unordered_set< T > &sSet, std::string_view itemKey="item")
 
template<typename T >
void serialize (std::string_view key, const std::list< T > &container, std::string_view itemKey="item")
 
template<typename T , size_t N>
void serialize (std::string_view key, const std::array< T, N > &container, std::string_view itemKey="item")
 
template<typename K , typename V , typename C , typename A >
void serialize (std::string_view key, const std::map< K, V, C, A > &map, std::string_view itemKey="item")
 
template<typename K , typename V , typename H , typename C , typename A , typename Pred = util::alwaysTrue, typename KProj = util::identity, typename VProj = util::identity>
void serialize (std::string_view key, const std::unordered_map< K, V, H, C, A > &map, std::string_view itemKey="item", Pred pred={}, KProj kproj={}, VProj vproj={})
 
void serialize (std::string_view key, const signed char &data, SerializationTarget target=SerializationTarget::Node)
 
void serialize (std::string_view key, const char &data, SerializationTarget target=SerializationTarget::Node)
 
void serialize (std::string_view key, const unsigned char &data, SerializationTarget target=SerializationTarget::Node)
 
void serialize (std::string_view key, std::string_view data, SerializationTarget target=SerializationTarget::Node)
 
void serialize (std::string_view key, const std::string &data, SerializationTarget target=SerializationTarget::Node)
 
void serialize (std::string_view key, const std::pmr::string &data, SerializationTarget target=SerializationTarget::Node)
 
template<typename T >
requires (std::is_integral_v<T> || std::is_floating_point_v<T>)
void serialize (std::string_view key, const T &data, SerializationTarget target=SerializationTarget::Node)
 
template<typename T , typename std::enable_if< std::is_enum< T >::value, int >::type = 0>
void serialize (std::string_view key, const T &data, SerializationTarget target=SerializationTarget::Node)
 
template<typename T >
void serialize (std::string_view key, const flags::flags< T > &data, SerializationTarget target=SerializationTarget::Node)
 
template<typename Vec , typename std::enable_if< util::rank< Vec >::value==1, int >::type = 0>
void serialize (std::string_view key, const Vec &data)
 
template<typename Mat , typename std::enable_if< util::rank< Mat >::value==2, int >::type = 0>
void serialize (std::string_view key, const Mat &data)
 
template<size_t N>
void serialize (std::string_view key, const std::bitset< N > &bits)
 
void serialize (std::string_view key, const std::filesystem::path &path, SerializationTarget target=SerializationTarget::Node)
 
void serialize (std::string_view key, const Serializable &sObj)
 
template<class T >
void serialize (std::string_view key, const T *const &data)
 
template<class T , class D >
void serialize (std::string_view key, const std::unique_ptr< T, D > &data)
 
template<typename T , typename = std::enable_if_t<util::is_detected_exact_v<void, HasSerialize, T>>>
void serialize (std::string_view key, const T &sObj)
 
template<typename Range , typename SerializeFunction >
void serializeRange (std::string_view key, Range &&range, SerializeFunction serializeFunction={})
 
std::pmr::string & addAttribute (std::string_view key)
 
NodeSwitch switchToNewNode (std::string_view key)
 
void setWorkspaceSaveMode (WorkspaceSaveMode mode)
 
WorkspaceSaveMode getWorkspaceSaveMode () const
 
- Public Member Functions inherited from inviwo::SerializeBase
 SerializeBase (const std::filesystem::path &fileName, allocator_type alloc={})
 Base class for Serializer and Deserializer.
 
 SerializeBase (const SerializeBase &rhs)=delete
 
 SerializeBase (SerializeBase &&rhs) noexcept
 
SerializeBaseoperator= (const SerializeBase &)=delete
 
SerializeBaseoperator= (SerializeBase &&) noexcept
 
const std::filesystem::path & getFileName () const
 Gets the workspace file name.
 
const std::filesystem::path & getFileDir () const
 Gets the workspace file directory.
 
allocator_type getAllocator () const
 

Protected Member Functions

TiXmlElement * getLastChild () const
 

Static Protected Member Functions

static std::pmr::string & addAttribute (TiXmlElement *node, std::string_view key)
 

Protected Attributes

WorkspaceSaveMode workspaceSaveMode_ = WorkspaceSaveMode::Disk
 
- Protected Attributes inherited from inviwo::SerializeBase
std::filesystem::path fileName_
 
std::filesystem::path fileDir_
 
std::unique_ptr< TiXmlDocument > doc_
 
TiXmlElement * rootElement_
 
bool retrieveChild_
 

Friends

class NodeSwitch
 

Additional Inherited Members

- Static Public Member Functions inherited from inviwo::SerializeBase
template<typename U >
static constexpr bool isPrimitiveType ()
 Checks whether the given type is a primitive type.
 

Constructor & Destructor Documentation

◆ Serializer()

inviwo::Serializer::Serializer ( const std::filesystem::path & fileName,
std::string_view rootElement = SerializeConstants::InviwoWorkspace,
allocator_type alloc = {} )
explicit

Initializes serializer with a file name that will be used to set relative paths to data.

The specified file name will not be used to write any content until writeFile() is called.

Parameters
fileNamefull path to xml file.
Exceptions
SerializationException

Member Function Documentation

◆ writeFile() [1/2]

void inviwo::Serializer::writeFile ( )

Writes serialized data to the file specified by the currently set file name.

Exceptions
SerializationException

◆ writeFile() [2/2]

void inviwo::Serializer::writeFile ( std::ostream & stream,
bool format = false )

Writes serialized data to stream.

Parameters
streamStream to be written to.
formatFormat the output, i.e. insert line breaks and tabs.
Exceptions
SerializationException

The documentation for this class was generated from the following file: