Bridge++  Ver. 1.2.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
dataIO_Text.h
Go to the documentation of this file.
1 
10 #ifndef DATAIO_TEXT_INCLUDED
11 #define DATAIO_TEXT_INCLUDED
12 
13 #include "dataIO.h"
14 #include <string>
15 using std::string;
16 
17 #include <fstream>
18 using std::fstream;
19 
20 enum
21 {
23 };
24 
26 
40 class DataIO_Text : public DataIO
41 {
42  public:
45 
46  virtual void read_file(double *v, const size_t n, const string& f)
47  { return read_file_base(v, n, f); }
48  virtual void write_file(const double *v, const size_t n, const string& f, const bool append = true)
49  { return write_file_base(v, n, f, append); }
50 
51  virtual void read_file(dcomplex *v, const size_t n, const string& f)
52  { return read_file_base(v, n, f); }
53  virtual void write_file(const dcomplex *v, const size_t n, const string& f, const bool append = true)
54  { return write_file_base(v, n, f, append); }
55 
56  virtual void read_file(valarray<double>& v, const string& f)
57  { return read_file_base(&v[0], v.size(), f); }
58  virtual void write_file(const valarray<double>& v, const string& f, const bool append = true)
59 // { return write_file_base(&v[0], v.size(), f, append); }
60  { // workaround for standard-compliant definition of operator[]
61  valarray<double>& p = const_cast<valarray<double>&>(v);
62  return write_file_base(&p[0], v.size(), f, append);
63  }
64 
65  virtual void read_file(valarray<dcomplex>& v, const string& f)
66  { return read_file_base(&v[0], v.size(), f); }
67  virtual void write_file(const valarray<dcomplex>& v, const string& f, const bool append = true)
68 // { return write_file_base(&v[0], v.size(), f, append); }
69  {
70  valarray<dcomplex>& p = const_cast<valarray<dcomplex>&>(v);
71  return write_file_base(&p[0], v.size(), f, append);
72  }
73 
74  void set_parameter(const int precision) { m_format_precision = precision; }
75 
76  private:
78 
79  template<typename T>
80  void read_file_base(T *v, const size_t n, const string&);
81 
82  template<typename T>
83  void write_file_base(const T *v, const size_t n, const string&, const bool append = true);
84 
85  template<typename T>
86  inline void fetch_data(T& v, fstream& fs);
87 
88  template<typename T>
89  inline void store_data(const T& v, fstream& fs);
90 };
91 
92 #include "dataIO_Text_impl.h"
93 #endif /* DATAIO_TEXT_INCLUDED */
void read_file_base(T *v, const size_t n, const string &)
virtual void read_file(valarray< dcomplex > &v, const string &f)
Definition: dataIO_Text.h:65
virtual void write_file(const valarray< double > &v, const string &f, const bool append=true)
Definition: dataIO_Text.h:58
void store_data(const T &v, fstream &fs)
int m_format_precision
Definition: dataIO_Text.h:77
virtual void write_file(const dcomplex *v, const size_t n, const string &f, const bool append=true)
Definition: dataIO_Text.h:53
DataIO_Text class for general file I/O in plain Text format.
Definition: dataIO_Text.h:40
void set_parameter(const int precision)
Definition: dataIO_Text.h:74
virtual void read_file(valarray< double > &v, const string &f)
Definition: dataIO_Text.h:56
virtual void read_file(double *v, const size_t n, const string &f)
Definition: dataIO_Text.h:46
void write_file_base(const T *v, const size_t n, const string &, const bool append=true)
void fetch_data(T &v, fstream &fs)
#define ENTER
Definition: dataIO.h:18
virtual void write_file(const double *v, const size_t n, const string &f, const bool append=true)
Definition: dataIO_Text.h:48
DataIO class for file I/O of general collection of data.
Definition: dataIO.h:44
virtual void read_file(dcomplex *v, const size_t n, const string &f)
Definition: dataIO_Text.h:51
virtual void write_file(const valarray< dcomplex > &v, const string &f, const bool append=true)
Definition: dataIO_Text.h:67