21#ifndef __stir_RegisteredParsingObject_H__
22#define __stir_RegisteredParsingObject_H__
76template <
typename Derived,
typename Base,
typename Parent = Base>
82#if !defined(SWIG) || (SWIG_VERSION >= 0x040300)
111 Parent::registry().add_to_registry(Derived::registered_name, &
read_from_stream);
124 cerr <<
"In RegisterIt destructor for " << Derived::registered_name<<endl;
125 cerr <<
"Current keys: ";
126 Parent::registry().list_keys(cerr);
127 Parent::registry().remove_from_registry(Derived::registered_name);
132 friend struct RegisterIt;
Declaration of class stir::ParsingObject.
Inline implementations for class stir::RegisteredParsingObject.
Parent class for all leaves in a RegisteredObject hierarchy that do parsing of parameter files.
Definition RegisteredParsingObject.h:78
static Base * read_from_stream(std::istream *)
Construct a new object (of type Derived) by parsing the istream.
Definition RegisteredParsingObject.inl:32
std::string parameter_info() override
Returns a string with all parameters and their values, in a form suitable for parsing again.
Definition RegisteredParsingObject.inl:51
std::string get_registered_name() const override
Returns Derived::registered_name.
Definition RegisteredParsingObject.inl:25
RegisterIt()
Default constructor adds the type to the registry.
Definition RegisteredParsingObject.h:107
~RegisterIt()
Destructor should remove it from the registry.
Definition RegisteredParsingObject.h:119