Tenncor
Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
pbm::GraphSaver< SAVER, > Struct Template Referencefinal

Graph serialization traveler. More...

#include <save.hpp>

Inheritance diagram for pbm::GraphSaver< SAVER, >:
Inheritance graph
[legend]
Collaboration diagram for pbm::GraphSaver< SAVER, >:
Collaboration graph
[legend]

Public Member Functions

 GraphSaver (tag::TagRegistry &registry=tag::get_reg())
 
void visit (teq::iLeaf *leaf) override
 Implementation of iTraveler. More...
 
void visit (teq::iFunctor *func) override
 Implementation of iTraveler. More...
 
void save (cortenn::Graph &out)
 Marshal all equation graphs in roots vector to protobuf object. More...
 
- Public Member Functions inherited from teq::iTraveler
virtual ~iTraveler (void)=default
 

Public Attributes

std::list< teq::iLeaf * > leaves_
 List of leaves visited (left to right) More...
 
std::list< teq::iFunctor * > funcs_
 List of functions visited (by depth-first) More...
 
teq::TensSetT visited_
 Visited nodes. More...
 
teq::GraphStat stat
 Internal traveler. More...
 

Private Member Functions

void save_data (cortenn::Source &out, teq::iLeaf *in)
 
void tag_node (cortenn::Node *node, teq::iTensor *tens, tag::TagRegistry &registry)
 

Private Attributes

SAVER saver_
 
tag::TagRegistryregistry_
 

Detailed Description

template<typename SAVER, typename std::enable_if< std::is_base_of< iSaver, SAVER >::value >::type * = nullptr>
struct pbm::GraphSaver< SAVER, >

Graph serialization traveler.

Constructor & Destructor Documentation

◆ GraphSaver()

template<typename SAVER , typename std::enable_if< std::is_base_of< iSaver, SAVER >::value >::type * = nullptr>
pbm::GraphSaver< SAVER, >::GraphSaver ( tag::TagRegistry registry = tag::get_reg())
inline

Member Function Documentation

◆ save()

template<typename SAVER , typename std::enable_if< std::is_base_of< iSaver, SAVER >::value >::type * = nullptr>
void pbm::GraphSaver< SAVER, >::save ( cortenn::Graph &  out)
inline

Marshal all equation graphs in roots vector to protobuf object.

◆ save_data()

template<typename SAVER , typename std::enable_if< std::is_base_of< iSaver, SAVER >::value >::type * = nullptr>
void pbm::GraphSaver< SAVER, >::save_data ( cortenn::Source &  out,
teq::iLeaf in 
)
inlineprivate

◆ tag_node()

template<typename SAVER , typename std::enable_if< std::is_base_of< iSaver, SAVER >::value >::type * = nullptr>
void pbm::GraphSaver< SAVER, >::tag_node ( cortenn::Node *  node,
teq::iTensor tens,
tag::TagRegistry registry 
)
inlineprivate

◆ visit() [1/2]

template<typename SAVER , typename std::enable_if< std::is_base_of< iSaver, SAVER >::value >::type * = nullptr>
void pbm::GraphSaver< SAVER, >::visit ( teq::iLeaf leaf)
inlineoverridevirtual

Implementation of iTraveler.

Implements teq::iTraveler.

◆ visit() [2/2]

template<typename SAVER , typename std::enable_if< std::is_base_of< iSaver, SAVER >::value >::type * = nullptr>
void pbm::GraphSaver< SAVER, >::visit ( teq::iFunctor func)
inlineoverridevirtual

Implementation of iTraveler.

Implements teq::iTraveler.

Member Data Documentation

◆ funcs_

template<typename SAVER , typename std::enable_if< std::is_base_of< iSaver, SAVER >::value >::type * = nullptr>
std::list<teq::iFunctor*> pbm::GraphSaver< SAVER, >::funcs_

List of functions visited (by depth-first)

◆ leaves_

template<typename SAVER , typename std::enable_if< std::is_base_of< iSaver, SAVER >::value >::type * = nullptr>
std::list<teq::iLeaf*> pbm::GraphSaver< SAVER, >::leaves_

List of leaves visited (left to right)

◆ registry_

template<typename SAVER , typename std::enable_if< std::is_base_of< iSaver, SAVER >::value >::type * = nullptr>
tag::TagRegistry& pbm::GraphSaver< SAVER, >::registry_
private

◆ saver_

template<typename SAVER , typename std::enable_if< std::is_base_of< iSaver, SAVER >::value >::type * = nullptr>
SAVER pbm::GraphSaver< SAVER, >::saver_
private

◆ stat

template<typename SAVER , typename std::enable_if< std::is_base_of< iSaver, SAVER >::value >::type * = nullptr>
teq::GraphStat pbm::GraphSaver< SAVER, >::stat

Internal traveler.

◆ visited_

template<typename SAVER , typename std::enable_if< std::is_base_of< iSaver, SAVER >::value >::type * = nullptr>
teq::TensSetT pbm::GraphSaver< SAVER, >::visited_

Visited nodes.


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