11 #ifndef OOPS_INTERFACE_GEOMETRYITERATOR_H_ 12 #define OOPS_INTERFACE_GEOMETRYITERATOR_H_ 17 #include <boost/scoped_ptr.hpp> 20 #include "oops/util/Logger.h" 21 #include "oops/util/ObjectCounter.h" 22 #include "oops/util/Printable.h" 23 #include "oops/util/Timer.h" 28 template<
typename MODEL>
30 public util::Printable,
31 private util::ObjectCounter<GeometryIterator<MODEL>> {
35 static const std::string
classname() {
return "oops::GeometryIterator";}
51 void print(std::ostream &)
const;
57 template<
typename MODEL>
59 Log::trace() <<
"GeometryIterator<MODEL>::GeometryIterator starting" << std::endl;
60 util::Timer timer(classname(),
"GeometryIterator");
62 Log::trace() <<
"GeometryIterator<MODEL>::GeometryIterator done" << std::endl;
67 template<
typename MODEL>
69 Log::trace() <<
"GeometryIterator<MODEL>::GeometryIterator starting" << std::endl;
70 util::Timer timer(classname(),
"GeometryIterator");
72 Log::trace() <<
"GeometryIterator<MODEL>::GeometryIterator done" << std::endl;
77 template<
typename MODEL>
79 Log::trace() <<
"GeometryIterator<MODEL>::~GeometryIterator starting" << std::endl;
80 util::Timer timer(classname(),
"~GeometryIterator");
81 geometryiter_.reset();
82 Log::trace() <<
"GeometryIterator<MODEL>::~GeometryIterator done" << std::endl;
87 template<
typename MODEL>
89 Log::trace() <<
"GeometryIterator<MODEL>::operator== starting" << std::endl;
90 util::Timer timer(classname(),
"operator==");
92 Log::trace() <<
"GeometryIterator<MODEL>::operator== done" << std::endl;
98 template<
typename MODEL>
100 Log::trace() <<
"GeometryIterator<MODEL>::operator!= starting" << std::endl;
101 util::Timer timer(classname(),
"operator!=");
102 bool notequals = (*geometryiter_ != other.
geometryiter());
103 Log::trace() <<
"GeometryIterator<MODEL>::operator!= done" << std::endl;
110 template<
typename MODEL>
112 Log::trace() <<
"GeometryIterator<MODEL>::operator* starting" << std::endl;
113 util::Timer timer(classname(),
"operator*");
115 Log::trace() <<
"GeometryIterator<MODEL>::operator* done" << std::endl;
121 template<
typename MODEL>
123 Log::trace() <<
"GeometryIterator<MODEL>::operator++ starting" << std::endl;
124 util::Timer timer(classname(),
"operator++");
126 Log::trace() <<
"GeometryIterator<MODEL>::operator++ done" << std::endl;
133 template<
typename MODEL>
135 Log::trace() <<
"GeometryIterator<MODEL>::print starting" << std::endl;
136 util::Timer timer(classname(),
"print");
137 os << *geometryiter_;
138 Log::trace() <<
"GeometryIterator<MODEL>::print done" << std::endl;
144 #endif // OOPS_INTERFACE_GEOMETRYITERATOR_H_
bool operator!=(const GeometryIterator &)
boost::scoped_ptr< GeometryIterator_ > geometryiter_
static const std::string classname()
The namespace for the main oops code.
const GeometryIterator_ & geometryiter() const
Interfacing.
GeometryIterator_ & geometryiter()
bool operator==(const GeometryIterator &)
MODEL::GeometryIterator GeometryIterator_
GeometryIterator operator++()
void print(std::ostream &) const
GeometryIterator(const GeometryIterator &)