STIR 6.4.0
RegisteredParsingObject.inl
Go to the documentation of this file.
1//
2//
12/*
13 Copyright (C) 2000- 2009, Hammersmith Imanet Ltd
14 This file is part of STIR.
15
16 SPDX-License-Identifier: Apache-2.0
17
18 See STIR/LICENSE.txt for details
19*/
20
21START_NAMESPACE_STIR
22
23template <typename Derived, typename Base, typename Parent>
24std::string
26{
27 return Derived::registered_name;
28}
29
30template <typename Derived, typename Base, typename Parent>
31Base*
33{
34 Derived* der_ptr = new Derived;
35 if (in != NULL)
36 {
37 if (der_ptr->parse(*in) == false)
38 {
39 // parsing failed, return 0 pointer
40 delete der_ptr;
41 return 0;
42 }
43 }
44 else
45 der_ptr->ask_parameters();
46 return der_ptr;
47}
48
49template <typename Derived, typename Base, typename Parent>
50std::string
52{
53 return ParsingObject::parameter_info();
54}
55
56END_NAMESPACE_STIR
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