Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
igl::Serializable Class Referenceabstract

#include <src/libigl/igl/serialize.h>

+ Inheritance diagram for igl::Serializable:
+ Collaboration diagram for igl::Serializable:

Classes

struct  SerializationObject
 

Public Member Functions

virtual void InitSerialization ()=0
 
virtual bool PreSerialization () const
 
virtual void PostSerialization () const
 
virtual bool PreDeserialization ()
 
virtual void PostDeserialization ()
 
void Serialize (std::vector< char > &buffer) const override final
 
void Deserialize (const std::vector< char > &buffer) override final
 
 Serializable ()
 
 Serializable (const Serializable &obj)
 
 ~Serializable ()
 
Serializableoperator= (const Serializable &obj)
 
template<typename T >
void Add (T &obj, std::string name, bool binary=false)
 

Private Attributes

bool initialized
 
std::vector< SerializableBase * > objects
 

Detailed Description

Constructor & Destructor Documentation

◆ Serializable() [1/2]

igl::Serializable::Serializable ( )
inline
635 {
636 initialized = false;
637 }
bool initialized
Definition serialize.h:185

References initialized.

◆ Serializable() [2/2]

igl::Serializable::Serializable ( const Serializable obj)
inline
640 {
641 initialized = false;
642 objects.clear();
643 }
std::vector< SerializableBase * > objects
Definition serialize.h:186

References initialized, and objects.

◆ ~Serializable()

igl::Serializable::~Serializable ( )
inline
646 {
647 initialized = false;
648 objects.clear();
649 }

References initialized, and objects.

Member Function Documentation

◆ Add()

template<typename T >
void igl::Serializable::Add ( T &  obj,
std::string  name,
bool  binary = false 
)
inline
666 {
667 auto object = new SerializationObject<T>();
668 object->Binary = binary;
669 object->Name = name;
670 object->Object = std::unique_ptr<T>(&obj);
671
672 objects.push_back(object);
673 }
@ binary
Definition stl.h:70

References binary, and objects.

◆ Deserialize()

void igl::Serializable::Deserialize ( const std::vector< char > &  buffer)
inlinefinaloverridevirtual

Implements igl::SerializableBase.

615 {
616 if(this->PreDeserialization())
617 {
618 if(initialized == false)
619 {
620 objects.clear();
621 (const_cast<Serializable*>(this))->InitSerialization();
622 initialized = true;
623 }
624
625 for(auto& v : objects)
626 {
627 v->Deserialize(buffer);
628 }
629
630 this->PostDeserialization();
631 }
632 }
Serializable()
Definition serialize.h:634
virtual bool PreDeserialization()
Definition serialize.h:585
virtual void PostDeserialization()
Definition serialize.h:590

References initialized, objects, PostDeserialization(), and PreDeserialization().

+ Here is the call graph for this function:

◆ InitSerialization()

virtual void igl::Serializable::InitSerialization ( )
pure virtual

◆ operator=()

Serializable & igl::Serializable::operator= ( const Serializable obj)
inline
652 {
653 if(this != &obj)
654 {
655 if(initialized)
656 {
657 initialized = false;
658 objects.clear();
659 }
660 }
661 return *this;
662 }

References initialized, and objects.

◆ PostDeserialization()

void igl::Serializable::PostDeserialization ( )
inlinevirtual
591 {
592 }

Referenced by Deserialize().

+ Here is the caller graph for this function:

◆ PostSerialization()

void igl::Serializable::PostSerialization ( ) const
inlinevirtual
582 {
583 }

Referenced by Serialize().

+ Here is the caller graph for this function:

◆ PreDeserialization()

bool igl::Serializable::PreDeserialization ( )
inlinevirtual
586 {
587 return true;
588 }

Referenced by Deserialize().

+ Here is the caller graph for this function:

◆ PreSerialization()

bool igl::Serializable::PreSerialization ( ) const
inlinevirtual
577 {
578 return true;
579 }

Referenced by Serialize().

+ Here is the caller graph for this function:

◆ Serialize()

void igl::Serializable::Serialize ( std::vector< char > &  buffer) const
inlinefinaloverridevirtual

Implements igl::SerializableBase.

595 {
596 if(this->PreSerialization())
597 {
598 if(initialized == false)
599 {
600 objects.clear();
601 (const_cast<Serializable*>(this))->InitSerialization();
602 initialized = true;
603 }
604
605 for(const auto& v : objects)
606 {
607 v->Serialize(buffer);
608 }
609
610 this->PostSerialization();
611 }
612 }
virtual void PostSerialization() const
Definition serialize.h:581
virtual bool PreSerialization() const
Definition serialize.h:576

References initialized, objects, PostSerialization(), and PreSerialization().

+ Here is the call graph for this function:

Member Data Documentation

◆ initialized

bool igl::Serializable::initialized
mutableprivate

◆ objects

std::vector<SerializableBase*> igl::Serializable::objects
mutableprivate

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