Jpp 21.0.0-rc.3
the software that should make you happy
Loading...
Searching...
No Matches
JObjectReader.hh
Go to the documentation of this file.
1#ifndef __JLANG__JOBJECTREADER__
2#define __JLANG__JOBJECTREADER__
3
4#include <memory>
5
7
8
9/**
10 * \author mdejong
11 */
12
13namespace JLANG {}
14namespace JPP { using namespace JLANG; }
15
16namespace JLANG {
17
18 /**
19 * Auxiliary class for object reading.
20 *
21 * This class implements the JAbstractObjectReader interface.
22 */
23 template<class T>
25 public virtual JObjectIterator<T>,
26 public JAbstractObjectReader<T>,
27 public std::shared_ptr< JObjectIterator<T> >
28 {
29
30 typedef std::shared_ptr< JObjectIterator<T> > helper_type;
32
33 /**
34 * Default constructor.
35 */
38
39
40 /**
41 * Get helper.
42 *
43 * \return helper
44 */
45 virtual JObjectIterator<T>* getHelper() const override
46 {
47 return this->get();
48 }
49 };
50
51
52 /**
53 * Auxiliary class for object reading with rewinding.
54 *
55 * This class implements the JAbstractRewindableObjectReader interface.
56 */
57 template<class T>
59 public virtual JRewindableObjectIterator<T>,
61 public std::shared_ptr< JRewindableObjectIterator<T> >
62 {
63
64 typedef std::shared_ptr< JRewindableObjectIterator<T> > helper_type;
66
67 /**
68 * Default constructor.
69 */
72
73
74 /**
75 * Get helper.
76 *
77 * \return helper
78 */
79 virtual JRewindableObjectIterator<T>* getHelper() const override
80 {
81 return this->get();
82 }
83 };
84
85
86 /**
87 * Auxiliary class for object reading with named access.
88 *
89 * This class implements the JAbstractAccessibleObjectReader interface.
90 */
91 template<class T>
93 public virtual JAccessibleObjectIterator<T>,
95 public std::shared_ptr< JAccessibleObjectIterator<T> >
96 {
97
98 typedef std::shared_ptr< JAccessibleObjectIterator<T> > helper_type;
100
101 /**
102 * Default constructor.
103 */
106
107
108 /**
109 * Get helper.
110 *
111 * \return helper
112 */
113 virtual JAccessibleObjectIterator<T>* getHelper() const override
114 {
115 return this->get();
116 }
117 };
118}
119
120#endif
Interface for object iteration with named access.
Interface of object iteration for a single data type.
Interface for object iteration with rewinding.
Auxiliary classes and methods for language specific functionality.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Abstract interface for object reading with named access.
Abstract interface for object reading.
Abstract interface for object reading with rewinding.
Auxiliary class for object reading with named access.
JObjectIterator< T >::pointer_type pointer_type
std::shared_ptr< JAccessibleObjectIterator< T > > helper_type
virtual JAccessibleObjectIterator< T > * getHelper() const override
Get helper.
JAccessibleObjectReader()
Default constructor.
Auxiliary class for object reading.
std::shared_ptr< JObjectIterator< T > > helper_type
JObjectReader()
Default constructor.
JObjectIterator< T >::pointer_type pointer_type
virtual JObjectIterator< T > * getHelper() const override
Get helper.
Auxiliary class for object reading with rewinding.
JObjectIterator< T >::pointer_type pointer_type
virtual JRewindableObjectIterator< T > * getHelper() const override
Get helper.
JRewindableObjectReader()
Default constructor.
std::shared_ptr< JRewindableObjectIterator< T > > helper_type