Bridge++  Ver. 1.2.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
fieldIO.h
Go to the documentation of this file.
1 
10 #ifndef FIELDIO_INCLUDED
11 #define FIELDIO_INCLUDED
12 
13 #include <string>
14 #include <stdint.h>
15 
16 #include "field.h"
17 #include "index_lex.h"
18 #include "commonParameters.h"
19 #include "io_format.h"
20 
22 
48 class FieldIO
49 {
50  public:
51  static const std::string class_name;
52 
53  private:
55 
56  protected:
58 
60 
61  public:
62 
64  FieldIO(const IO_Format::Format *format) : m_format(format), m_vl(CommonParameters::Vlevel()) {}
65  virtual ~FieldIO() {}
66 
67  virtual void read_file(Field *v, std::string) = 0;
68  virtual void write_file(Field *v, std::string) = 0;
69 
70  void deliver(Field *vlocal, Field *vglobal);
71  void gather(Field *vglobal, Field *vlocal);
72 
73 // protected:
74 
76  static void byte_swap(void *buf, size_t size, size_t nmemb)
77  {
78  return convert_endian(buf, size, nmemb);
79  }
80 
82  static void convert_endian(void *buf, size_t size, size_t nmemb);
83 
85  static bool is_bigendian();
86 };
87 #endif
Index_lex idx
Definition: fieldIO.h:54
virtual ~FieldIO()
Definition: fieldIO.h:65
static void byte_swap(void *buf, size_t size, size_t nmemb)
&lt; convert byte order. alternative interface.
Definition: fieldIO.h:76
static const std::string class_name
Definition: fieldIO.h:51
void deliver(Field *vlocal, Field *vglobal)
distribute data on primary node over parallel nodes.
Definition: fieldIO.cpp:29
Container of Field-type object.
Definition: field.h:37
FieldIO(const IO_Format::Format *format)
&lt; constructor. format specifies data layout on file.
Definition: fieldIO.h:64
static bool is_bigendian()
Definition: fieldIO.cpp:202
Common parameter class: provides parameters as singleton.
Lexical site index.
Definition: index_lex.h:34
const IO_Format::Format * m_format
Definition: fieldIO.h:57
VerboseLevel
Definition: bridgeIO.h:25
virtual void read_file(Field *v, std::string)=0
read data from file.
virtual void write_file(Field *v, std::string)=0
write data to file.
static void convert_endian(void *buf, size_t size, size_t nmemb)
check if machine byte order is big-endian.
Definition: fieldIO.cpp:224
FieldIO class for file I/O of space-time distributed data.
Definition: fieldIO.h:48
void gather(Field *vglobal, Field *vlocal)
gather data on parallel nodes to primary node.
Definition: fieldIO.cpp:115
Bridge::VerboseLevel m_vl
Definition: fieldIO.h:59