gambit is hosted by Hepforge, IPPP Durham
GAMBIT  v1.5.0-252-gf9a3f78
a Global And Modular Bsm Inference Tool
hdf5printer.hpp File Reference

HDF5 interface printer class declaration. More...

#include <map>
#include <vector>
#include <algorithm>
#include <sstream>
#include <iostream>
#include <fstream>
#include <iomanip>
#include "gambit/Printers/baseprinter.hpp"
#include "gambit/Printers/VertexBufferBase.hpp"
#include "gambit/Printers/VertexBuffer_mpitags.hpp"
#include "gambit/Printers/printers/hdf5types.hpp"
#include "gambit/Printers/printers/hdf5printer/hdf5tools.hpp"
#include "gambit/Printers/printers/hdf5printer/VertexBufferNumeric1D_HDF5.hpp"
#include "gambit/Printers/printers/hdf5printer/DataSetInterfaceScalar.hpp"
#include "gambit/Utils/yaml_options.hpp"
#include "gambit/Utils/cats.hpp"
#include "gambit/Logs/logger.hpp"
#include "gambit/Utils/mpiwrapper.hpp"
#include "gambit/Utils/new_mpi_datatypes.hpp"
#include <boost/preprocessor/seq/for_each_i.hpp>
Include dependency graph for hdf5printer.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Gambit::Printers::H5P_LocalBufferManager< BuffType >
 Keeps track of vertex buffers local to a print function. More...
 
class  Gambit::Printers::HDF5Printer
 The main printer class for output to HDF5 format. More...
 

Namespaces

 Gambit
 TODO: see if we can use this one:
 
 Gambit::Printers
 Forward declaration of Printers::BasePrinter class for use in print functions.
 

Macros

#define DECLARE_PRINT(r, data, i, elem)   void _print(elem const&, const std::string&, const int, const uint, const ulong);
 
#define BT(TYPE)   VertexBufferNumeric1D_HDF5<TYPE,BUFFERLENGTH>
 Buffer manager objects. More...
 
#define DEFINE_BUFFMAN_GETTER(TYPE)
 Macro to help define the buffer manager getter functions. More...
 
typedef std::map< VBIDpair, VertexBufferBase * > Gambit::Printers::BaseBufferMap
 Helpful typedefs. More...
 
template<class T , class U >
void Gambit::Printers::error_if_key_exists (const std::map< T, U > &m, const T &key, const std::string &tag)
 Helper function to check if a VertexBuffer key already exists in a map. More...
 
 Gambit::Printers::DEFINE_BUFFMAN_GETTER (int) DEFINE_BUFFMAN_GETTER(uint) DEFINE_BUFFMAN_GETTER(long) DEFINE_BUFFMAN_GETTER(ulong) DEFINE_BUFFMAN_GETTER(longlong) DEFINE_BUFFMAN_GETTER(ulonglong) DEFINE_BUFFMAN_GETTER(float) DEFINE_BUFFMAN_GETTER(double) template< class BuffType > void H5P_LocalBufferManager< BuffType >
 Templated H5P_LocalBufferManager member functions. More...
 

Detailed Description

HDF5 interface printer class declaration.


Authors (add name and date if you modify):

Author
Ben Farmer (benja.nosp@m.min..nosp@m.farme.nosp@m.r@fy.nosp@m.sik.s.nosp@m.u.se)
Date
2015 May

Definition in file hdf5printer.hpp.

Macro Definition Documentation

◆ BT

#define BT (   TYPE)    VertexBufferNumeric1D_HDF5<TYPE,BUFFERLENGTH>

Buffer manager objects.

Definition at line 198 of file hdf5printer.hpp.

◆ DECLARE_PRINT

#define DECLARE_PRINT (   r,
  data,
  i,
  elem 
)    void _print(elem const&, const std::string&, const int, const uint, const ulong);

Definition at line 166 of file hdf5printer.hpp.

◆ DEFINE_BUFFMAN_GETTER

#define DEFINE_BUFFMAN_GETTER (   TYPE)
Value:
template<> \
inline H5P_LocalBufferManager<VertexBufferNumeric1D_HDF5<TYPE,BUFFERLENGTH>>& \
HDF5Printer::get_mybuffermanager<TYPE>(ulong pointID, uint mpirank) \
{ \
/* If the buffermanger hasn't been initialised, do so now */ \
if( not CAT(hdf5_localbufferman_,TYPE).ready() ) \
{ \
CAT(hdf5_localbufferman_,TYPE).init(this,synchronised); \
} \
\
/* While we are at it, check if the buffers need to be \
synchronised to a new point. But only if this printer is running \
in "synchronised" mode. */ \
if(synchronised) \
{ \
check_for_new_point(PPIDpair(pointID, mpirank)); \
} \
return CAT(hdf5_localbufferman_,TYPE); \
}
unsigned long int ulong
#define CAT(X, Y)
Concatenate macro arguments for 2-7 arguments.
Definition: cats.hpp:22

Macro to help define the buffer manager getter functions.

Definition at line 415 of file hdf5printer.hpp.