Flow123d
release_3.0.0-1073-g8f35d56
|
Helper class that stores data of generic types. More...
#include <type_generic.hh>
Public Member Functions | |
Instance (TypeBase &generic_type, std::vector< TypeBase::ParameterPair > parameters) | |
Constructor. More... | |
TypeHash | content_hash () const override |
Implements TypeBase::content_hash . More... | |
const Instance & | close () const |
Used for set Instance to TypeRepository. More... | |
FinishStatus | finish (FinishStatus finish_type=FinishStatus::regular_) override |
Finish declaration of the Instance type. Call finish of stored generic_type_ . More... | |
MakeInstanceReturnType | make_instance (std::vector< ParameterPair > vec=std::vector< ParameterPair >()) override |
Implements TypeBase::make_instance . More... | |
Public Member Functions inherited from Input::Type::TypeBase | |
virtual FinishStatus | finish_status () const |
Returns true if the type is fully specified and ready for read access. More... | |
virtual bool | is_finished () const |
virtual bool | is_closed () const |
Returns true if the type is closed. More... | |
virtual string | type_name () const |
Returns an identification of the type. Useful for error messages. More... | |
virtual string | class_name () const |
Returns an identification of the class. Useful for output of the documentation. More... | |
string | desc () const |
Returns string with Type extensive documentation. More... | |
virtual bool | operator== (const TypeBase &other) const |
Comparison of types. More... | |
bool | operator!= (const TypeBase &other) const |
Comparison of types. More... | |
virtual | ~TypeBase () |
Destructor. More... | |
std::string | hash_str () const |
Format the hash of this type. More... | |
virtual MakeInstanceReturnType | make_instance (ParameterVector vec=ParameterVector())=0 |
bool | is_root_of_generic_subtree () |
Indicates if type is marked with flag root_of_generic_subtree_ . More... | |
Protected Attributes | |
TypeBase & | generic_type_ |
Reference to generic types (contains some descendants of type Parameter ). More... | |
std::vector< TypeBase::ParameterPair > | parameters_ |
Stores pairs of (name, Input::Type), that are used for replace of parameters in generic types. More... | |
MakeInstanceReturnType | created_instance_ |
Stores returned type created in first call of make_instance method. More... | |
Protected Attributes inherited from Input::Type::TypeBase | |
std::shared_ptr< attribute_map > | attributes_ |
map of type attributes (e. g. input_type, name etc.) More... | |
bool | root_of_generic_subtree_ |
flag is true if type should be root of generic subtree More... | |
TypeHash | generic_type_hash_ |
hash string of generic type if type is derived, or empty string More... | |
ParameterMap | parameter_map_ |
map of parameters if type is part of generic subtree More... | |
Additional Inherited Members | |
Public Types inherited from Input::Type::TypeBase | |
typedef std::size_t | TypeHash |
Type returned by content_hash methods. More... | |
typedef std::string | json_string |
String stored in JSON format. More... | |
typedef std::map< std::string, json_string > | attribute_map |
Defines map of Input::Type attributes. More... | |
typedef std::pair< std::string, std::shared_ptr< TypeBase > > | ParameterPair |
Defines pairs of (name, Input::Type), that are used for replace of parameters in generic types. More... | |
typedef std::vector< ParameterPair > | ParameterVector |
Define vector of parameters passed to the overloaded make_instance method. More... | |
typedef std::map< std::string, TypeHash > | ParameterMap |
Defines map of used parameters. More... | |
typedef std::pair< std::shared_ptr< TypeBase >, ParameterMap > | MakeInstanceReturnType |
Return type of make_instance methods, contains instance of generic type and map of used parameters. More... | |
Static Public Member Functions inherited from Input::Type::TypeBase | |
static void | delete_unfinished_types () |
Finishes and marks all types registered in type repositories and unused in IST. More... | |
static std::string | hash_str (TypeHash hash) |
Format given hash for output. More... | |
Static Public Attributes inherited from Input::Type::TypeBase | |
static const TypeHash | none_hash = std::numeric_limits<TypeHash>::max() |
Protected Types inherited from Input::Type::TypeBase | |
typedef string | KeyHash |
The type of hash values used in associative array that translates key names to indices in Record and Selection. More... | |
Protected Member Functions inherited from Input::Type::TypeBase | |
TypeBase () | |
The default constructor. More... | |
TypeBase (const TypeBase &other) | |
Copy constructor. More... | |
void | add_attribute_ (std::string name, json_string val) |
Add attribute of given name to attribute map. More... | |
bool | validate_json (json_string str) const |
Check if str is valid JSON string. More... | |
json_string | print_parameter_map_to_json (ParameterMap parameter_map) const |
Create JSON output from parameter_map formatted as value of attribute. More... | |
json_string | print_parameter_map_keys_to_json (ParameterMap param_map) const |
void | set_generic_attributes (ParameterMap param_map) |
void | copy_attributes (attribute_map other_attributes) |
Static Protected Member Functions inherited from Input::Type::TypeBase | |
static KeyHash | key_hash (const string &str) |
Hash function. More... | |
static bool | is_valid_identifier (const string &key) |
Check that a key is valid identifier. More... | |
Helper class that stores data of generic types.
Definition at line 89 of file type_generic.hh.
Input::Type::Instance::Instance | ( | TypeBase & | generic_type, |
std::vector< TypeBase::ParameterPair > | parameters | ||
) |
Constructor.
Definition at line 91 of file type_generic.cc.
const Instance & Input::Type::Instance::close | ( | ) | const |
Used for set Instance to TypeRepository.
Definition at line 108 of file type_generic.cc.
|
overridevirtual |
Implements TypeBase::content_hash
.
Hash is calculated by hash of generic type and hash of parameters.
Implements Input::Type::TypeBase.
Definition at line 95 of file type_generic.cc.
|
overridevirtual |
Finish declaration of the Instance type. Call finish of stored generic_type_
.
Reimplemented from Input::Type::TypeBase.
Definition at line 113 of file type_generic.cc.
|
override |
Implements TypeBase::make_instance
.
Print parameter vector to formatted string.
In first call creates instance and stores its to created_instance_
.
At each successive call returns this stored type.
Definition at line 122 of file type_generic.cc.
|
mutableprotected |
Stores returned type created in first call of make_instance
method.
At each successive call of make_instance returns this stored type.
Definition at line 128 of file type_generic.hh.
|
protected |
Reference to generic types (contains some descendants of type Parameter
).
Definition at line 118 of file type_generic.hh.
|
protected |
Stores pairs of (name, Input::Type), that are used for replace of parameters in generic types.
Definition at line 121 of file type_generic.hh.