Jpp 21.0.0-rc.1
the software that should make you happy
Loading...
Searching...
No Matches
JReaderObjectIterator.hh
Go to the documentation of this file.
1#ifndef __JIO__JREADEROBJECTITERATOR__
2#define __JIO__JREADEROBJECTITERATOR__
3
4#include <type_traits>
5
6
10
11
12/**
13 * \author mdejong
14 */
15
16namespace JIO {}
17namespace JPP { using namespace JIO; }
18
19namespace JIO {
20
22
23
24 /**
25 * JReader object iterator.
26 *
27 * This class implements the JLANG::JObjectIterator interface.
28 */
29 template<class T>
32 {
33 public:
34 /**
35 * Constructor.
36 *
37 * \param reader reader input
38 */
40 in(reader)
41 {}
42
43
44 /**
45 * Set object.
46 *
47 * \param object reference to object to be set
48 * \return true if set; else false
49 */
50 virtual bool setObject(T& object) override
51 {
52 return setObject(object, std::bool_constant<JLANG::JConversion<T,JSerialisable>::is_derived>());
53 }
54
55 private:
56 bool setObject(T& object, std::true_type) { return (bool) object.read(in); }
57 bool setObject(T& object, std::false_type) { return (bool) (in >> object); }
58
60 };
61}
62
63#endif
virtual bool setObject(T &object) override
Set object.
bool setObject(T &object, std::true_type)
JReaderObjectIterator(JReader &reader)
Constructor.
bool setObject(T &object, std::false_type)
Interface for binary input.
Auxiliary classes and methods for binary I/O.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Template class test for polymorphism.