Utopia  2
Framework for studying models of complex & adaptive systems.
Classes | Enumerations | Variables
Factories

Provides a Functor for producing writetasks and a function for producing a datamanager using that functor. Exists for simplifying creation of default datamanagers for model builders. More...

Collaboration diagram for Factories:

Classes

struct  Utopia::DataIO::DatasetDescriptor
 Descriptor for a dataset. Contains: path: string giving the path of the dataset in its group or file with_time_postfix: whether the current model time is appended to the dataset path dataset_capacity: vector giving capacity of the dataset per dimension dataset_chunksize: vector giving chunksize per dimension of the dataset dataset_compression: integer giving compression strength (0 to 10) More...
 
class  Utopia::DataIO::TaskFactory< Model, typetag >
 Functor for building a writetask from arguments. More...
 
class  Utopia::DataIO::DataManagerFactory< Model >
 Factory function which produces a Datamanager of type Default::DefaultDataManager<Model> from a config and argumets from which to construct writetasks. More...
 

Enumerations

enum class  Utopia::DataIO::TypeTag {
  Utopia::DataIO::plain , Utopia::DataIO::vertex_property , Utopia::DataIO::edge_property , Utopia::DataIO::vertex_descriptor ,
  Utopia::DataIO::edge_descriptor
}
 TypeTag enumerates the kind of access which is used to write data. It became necessary after integrating graphs. Has 5 values: plain : use for everything that is not a graph vertex_property : for writing graphs using boost::vertex_property edge_property : for writing graphs using boost::edge_property vertex_descriptor : for writing graphs using boost::vertex_descriptor edge_descriptor : for writing graphs using boost::edge_descriptor. More...
 

Variables

static std::unordered_map< std::string, std::function< std::string(std::string, Model &) > > Utopia::DataIO::TaskFactory< Model, typetag >::_modifiers
 Initialization of the modifier map. More...
 

Detailed Description

Provides a Functor for producing writetasks and a function for producing a datamanager using that functor. Exists for simplifying creation of default datamanagers for model builders.

Factories module

Overview

This file provides a functor for producing default writetasks from complete or simplified arguments and another functor for producing a default datamanager.

Implementation

implemented as class because its encapsulation together with its helper functions is natural. It takes care of building writetasks from simplified user supplied arguments, and is build to be extendible. It distinguishes between the use of these simplified arguments and the usage of the full argument list needed to invoke the writetask constructor directly. The datamanager factory is much simpler in its logic, and hences is implemented as a template function.

Enumeration Type Documentation

◆ TypeTag

TypeTag enumerates the kind of access which is used to write data. It became necessary after integrating graphs. Has 5 values: plain : use for everything that is not a graph vertex_property : for writing graphs using boost::vertex_property edge_property : for writing graphs using boost::edge_property vertex_descriptor : for writing graphs using boost::vertex_descriptor edge_descriptor : for writing graphs using boost::edge_descriptor.

Enumerator
plain 
vertex_property 
edge_property 
vertex_descriptor 
edge_descriptor 

Variable Documentation

◆ _modifiers

template<typename Model , TypeTag typetag>
std::unordered_map< std::string, std::function< std::string(std::string, Model &) > > Utopia::DataIO::TaskFactory< Model, typetag >::_modifiers
staticprivate
Initial value:
=
std::unordered_map< std::string,
std::function< std::string(std::string, Model&) > >{
{ "time",
[](std::string path, Model& m) {
return path + "_" + std::to_string(m.get_time());
} }
}
std::string to_string(const Config &node)
Given a config node, returns a string representation of it.
Definition: cfg_utils.hh:110

Initialization of the modifier map.

Template Parameters
ModelModeltype to use.
typetag