1#ifndef UTIL_TEXT_FILE_I_ARCHIVE_H
2#define UTIL_TEXT_FILE_I_ARCHIVE_H
14#include <util/space/Vector.h>
15#include <util/space/IntVector.h>
68 std::ifstream&
file();
97 void unpack(T* array,
int n);
107 template <
typename T>
108 void unpack(T* array,
int m,
int n,
int np);
113 std::ifstream* filePtr_;
116 unsigned int version_;
136 template <
typename T>
139 serialize(*
this, data, version_);
146 template <
typename T>
149 serialize(*
this, data, version_);
158 template <
typename T>
160 { *filePtr_ >> data; }
165 template <
typename T>
168 for (
int i=0; i < n; ++i) {
169 *filePtr_ >> array[i];
176 template <
typename T>
180 for (i = 0; i < m; ++i) {
181 for (j = 0; j < n; ++j) {
182 *filePtr_ >> array[i*np + j];
192 { filePtr_->get(data); }
200 filePtr_->get(array, n+1,
'\0');
209 inline void serialize(TextFileIArchive& ar,
bool& data,
210 const unsigned int version)
217 inline void serialize(TextFileIArchive& ar,
char& data,
218 const unsigned int version)
225 inline void serialize(TextFileIArchive& ar,
unsigned int& data,
226 const unsigned int version)
233 inline void serialize(TextFileIArchive& ar,
int& data,
234 const unsigned int version)
241 inline void serialize(TextFileIArchive& ar,
unsigned long& data,
242 const unsigned int version)
249 inline void serialize(TextFileIArchive& ar,
long& data,
250 const unsigned int version)
257 inline void serialize(TextFileIArchive& ar,
float& data,
258 const unsigned int version)
265 inline void serialize(TextFileIArchive& ar,
double& data,
266 const unsigned int version)
272 template <
typename T>
273 void serialize(TextFileIArchive& ar, std::vector<T>& data,
274 const unsigned int version)
281 for (
size_t i = 0; i < size; ++i) {
283 data.push_back(element);
294 void serialize(TextFileIArchive& ar, std::complex<float>& data,
295 const unsigned int version)
303 void serialize(TextFileIArchive& ar, std::complex<double>& data,
304 const unsigned int version)
311 void serialize(TextFileIArchive& ar, std::string& data,
312 const unsigned int version);
320 inline void serialize(TextFileIArchive& ar, Vector& data,
321 const unsigned int version)
328 inline void serialize(TextFileIArchive& ar, IntVector& data,
329 const unsigned int version)
Loading archive for text istream.
TextFileIArchive()
Constructor.
TextFileIArchive & operator&(T &data)
Load one object.
std::ifstream & file()
Get the underlying ifstream by reference.
static bool is_saving()
Returns true;.
TextFileIArchive & operator>>(T &data)
Load one object.
void unpack(T &data)
Load a single T object.
static bool is_loading()
Returns false;.
virtual ~TextFileIArchive()
Destructor.
Utility classes for scientific computation.