ESyS-Particle
2.2
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
IterativeReader.h
Go to the documentation of this file.
1
2
// //
3
// Copyright (c) 2003-2013 by The University of Queensland //
4
// Earth Systems Science Computational Centre (ESSCC) //
5
// http://www.uq.edu.au/esscc //
6
// //
7
// Primary Business: Brisbane, Queensland, Australia //
8
// Licensed under the Open Software License version 3.0 //
9
// http://www.opensource.org/licenses/osl-3.0.php //
10
// //
12
13
14
#ifndef ESYS_LSMITERATIVEREADER_H
15
#define ESYS_LSMITERATIVEREADER_H
16
17
#include <sstream>
18
#include <memory>
19
20
namespace
esys
21
{
22
namespace
lsm
23
{
27
template
<
class
TmplData>
28
class
IStreamIterator
29
{
30
public
:
31
typedef
TmplData
value_type
;
32
33
IStreamIterator
(std::istream &iStream,
int
numElements);
34
35
virtual
~IStreamIterator
();
36
41
bool
hasNext
()
const
;
42
46
const
TmplData &
next
();
47
51
int
getNumRemaining
()
const
;
52
53
protected
:
54
IStreamIterator
(
const
IStreamIterator
&it);
55
IStreamIterator
&
operator=
(
const
IStreamIterator
&it);
56
57
virtual
void
readDataFromStream
();
58
59
std::istream *
m_pIStream
;
60
TmplData
m_data
;
61
int
m_numRemaining
;
62
};
63
73
template
<
class
TmplIterator>
74
class
IterativeReader
75
{
76
public
:
77
typedef
TmplIterator
Iterator
;
78
79
IterativeReader
(std::istream &iStream);
80
81
virtual
~IterativeReader
();
82
87
virtual
void
initialise
();
88
92
int
getNumElements
()
const
;
93
98
bool
isInitialised
()
const
;
99
100
Iterator
&
getIterator
();
101
102
protected
:
103
typedef
std::auto_ptr<Iterator>
IteratorAutoPtr
;
104
105
void
setNumElements
(
int
numElements);
106
107
std::istream &
getIStream
();
108
109
const
std::istream &
getIStream
()
const
;
110
115
virtual
Iterator
*
createNewIterator
();
116
117
private
:
118
119
int
m_numElements
;
120
std::istream *
m_pIStream
;
121
IteratorAutoPtr
m_iteratorPtr
;
122
};
123
}
124
}
125
126
#include "
Parallel/IterativeReader.hpp
"
127
128
#endif
Parallel
IterativeReader.h
Generated on Mon May 6 2013 23:26:30 for ESyS-Particle by
1.8.3.1