40#ifndef LM_MAIN_DATAOUTPUTQUEUE 
   41#define LM_MAIN_DATAOUTPUTQUEUE 
   45#include <google/protobuf/message.h> 
  116    virtual void pushDataSet(
uint type, 
uint replicate, ::google::protobuf::Message * 
message, 
void * payload=NULL, 
size_t payloadSize=0, 
void (*payloadSerializer)(
void *, 
void *, 
size_t)=NULL);
 
  120    virtual void pushDataSet(
void * data, 
size_t dataSize);
 
  136    template <
typename T>
 
  139            const std::string path, 
const std::string attr=
"")
 
  153        while (payload.size() == 0) {
 
  160            std::list<DataSet *>::iterator it=
returnList.begin();
 
  162                hdr = *
reinterpret_cast<H5MetaData *
>((*it)->data);
 
  164                    T *ds = 
reinterpret_cast<T*
>((*it)->data + 
sizeof(
H5MetaData));
 
  166                    std::copy(ds, ds+hdr.
payloadSize/
sizeof(T), payload.begin());
 
 
  178    template <
typename T>
 
  182        std::vector<T> payload;
 
  185        if (hdr.
ndim == 1 && hdr.
shape[0] == 1) {
 
  189            throw Exception(
"Got non-scalar from HDF5 attribute lookup");
 
 
 
H5Lookup make_H5_lookup(H5Lookup::Mode mode, const std::string path, const std::string attr="")
Definition ArbitraryH5.h:132
#define PTHREAD_EXCEPTION_CHECK(pthread_call)
Exception wrapping for the pthread api.
Definition Thread.h:100
unsigned int uint
Definition Types.h:52
Base class for exceptions.
Definition Exceptions.h:55
static const int INFO
Definition Print.h:56
static void printf(int level, const char *fmt,...)
Prints to the console at varying levels of verbosity or "Severity".
Definition Print.cpp:70
A set of data in the form of bytes to be written to disk.
Definition DataOutputQueue.h:68
DataSet()
Create an empty DataSet object.
Definition DataOutputQueue.h:71
size_t size
Definition DataOutputQueue.h:81
DataSet(void *origData, size_t size)
Create a DataSet object with a set of data.
Definition DataOutputQueue.h:76
byte * data
Definition DataOutputQueue.h:80
virtual ~DataSet()
Definition DataOutputQueue.h:77
DataSet(size_t size)
Definition DataOutputQueue.h:72
pthread_mutex_t returnMutex
Definition DataOutputQueue.h:130
static const uint SITE_LATTICE
Definition DataOutputQueue.h:90
static const uint SPECIES_COUNTS
Definition DataOutputQueue.h:85
static const uint PARAMETER_VALUES
Definition DataOutputQueue.h:87
DataOutputQueue()
Create a DataOutputQueue.
Definition DataOutputQueue.cpp:62
pthread_mutex_t dataMutex
Definition DataOutputQueue.h:127
virtual ~DataOutputQueue()
Definition DataOutputQueue.cpp:69
static const uint ARBITRARY_H5
Definition DataOutputQueue.h:91
static const uint FIRST_PASSAGE_TIMES
Definition DataOutputQueue.h:86
T queryH5attr(const uint replicate, const std::string path, const std::string attr)
Definition DataOutputQueue.h:180
static const uint ARBITRARY_H5_READ
Definition DataOutputQueue.h:92
queue< DataSet * > dataQueue
Definition DataOutputQueue.h:128
static void setInstance(DataOutputQueue *instance)
Sets the current DataOutputQueue that is active.
Definition DataOutputQueue.cpp:52
void queryH5(const H5Lookup::Mode mode, H5MetaData &hdr, std::vector< T > &payload, const uint replicate, const std::string path, const std::string attr="")
Definition DataOutputQueue.h:138
static const uint INT_LATTICE
Definition DataOutputQueue.h:89
virtual void pushDataSet(uint type, uint replicate, ::google::protobuf::Message *message, void *payload=NULL, size_t payloadSize=0, void(*payloadSerializer)(void *, void *, size_t)=NULL)
Put some data on the queue to be output.
Definition DataOutputQueue.cpp:91
static const uint BYTE_LATTICE
Definition DataOutputQueue.h:88
pthread_cond_t returnAvailable
Definition DataOutputQueue.h:132
static DataOutputQueue * getInstance()
Get the current DataOuputQueue tht is active.
Definition DataOutputQueue.cpp:57
std::list< DataSet * > returnList
Definition DataOutputQueue.h:131
An Exception class for handling pthread exceptions.
Definition Thread.h:53
Definition CheckpointSignaler.cpp:57
Definition SimulationParameters.h:51
Definition Capsule.cpp:46
Definition ArbitraryH5.h:56
Mode
Definition ArbitraryH5.h:57
@ ATTR
Definition ArbitraryH5.h:59
hid_t h5type
Definition ArbitraryH5.h:67
unsigned int replicate
Definition ArbitraryH5.h:62
size_t payloadSize
Definition ArbitraryH5.h:68
unsigned int type
Definition ArbitraryH5.h:61