STIR 6.4.0
DataProcessor.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
21#include "stir/warning.h"
22
23START_NAMESPACE_STIR
24
25template <typename DataT>
26DataProcessor<DataT>::DataProcessor()
27 : is_set_up_already(false)
28{}
29
30template <typename DataT>
31Succeeded
33{
35 Succeeded result = virtual_set_up(image);
36 is_set_up_already = (result == Succeeded::yes);
38 return result;
39}
40
41template <typename DataT>
42void
44{
45 this->is_set_up_already = false;
46}
47
48template <typename DataT>
49bool
50DataProcessor<DataT>::parse(std::istream& f)
51{
52 this->reset();
53 return ParsingObject::parse(f);
54}
55
56template <typename DataT>
57bool
58DataProcessor<DataT>::parse(const char* const filename)
59{
60 this->reset();
61 return ParsingObject::parse(filename);
63
64template <typename DataT>
67{
68 // assert(consistency_check(data) == Succeeded::yes);
69 if (!is_set_up_already)
70 if (set_up(data) == Succeeded::no)
71 {
72 warning("DataProcessor::apply: Building was unsuccesfull. No processing done.\n");
73 return Succeeded::no;
74 }
75 start_timers();
76 virtual_apply(data);
77 stop_timers();
78 return Succeeded::yes;
79}
80
81template <typename DataT>
83DataProcessor<DataT>::apply(DataT& data, const DataT& in_data)
84{
85 // assert(consistency_check(in_data) == Succeeded::yes);
86 if (!is_set_up_already)
87 if (set_up(in_data) == Succeeded::no)
88 {
89 warning("DataProcessor::apply: Building was unsuccesfull. No processing done.\n");
90 return Succeeded::no;
91 }
92 start_timers();
93 virtual_apply(data, in_data);
94 stop_timers();
95 return Succeeded::yes;
96}
97
98#if 0
99template <typename DataT>
100Succeeded
101DataProcessor<DataT>::
102consistency_check( const DataT& image) const
103{
104 return Succeeded::yes;
105}
106#endif
107
108END_NAMESPACE_STIR
virtual Succeeded virtual_set_up(const DataT &)=0
Will be called to build any internal parameters.
Succeeded apply(DataT &data)
Calls set_up() (if not already done before) and process data in-place.
Definition DataProcessor.inl:66
Succeeded set_up(const DataT &data)
Initialises any internal data (if necessary) using data as a template for sizes, sampling distances e...
Definition DataProcessor.inl:32
virtual void reset()
Makes sure we will ignore any previous call to set-up()
Definition DataProcessor.inl:43
a class containing an enumeration type that can be used by functions to signal successful operation o...
Definition Succeeded.h:44
void stop_timers() const
stop all timers kept by this object
Definition TimedObject.inl:40
void start_timers(bool do_reset=false) const
start all timers kept by this object
Definition TimedObject.inl:33
void warning(const char *const s,...)
Print warning with format string a la printf.
Definition warning.cxx:41
Declaration of stir::warning()