#ifndef H5PTWRAP_H
#define H5PTWRAP_H
#include "hdf5.h"
#include "H5PTpublic.h"
#include "H5api_adpt.h"
class H5_HLCPPDLL PacketTable
{
public:
PacketTable() {table_id = H5I_BADID;}
PacketTable(hid_t fileID, const char* name);
PacketTable(hid_t fileID, char* name);
virtual ~PacketTable();
bool IsValid();
int IsVariableLength();
void ResetIndex();
int SetIndex(hsize_t index);
hsize_t GetIndex(int& error);
hsize_t GetPacketCount(int& error);
hsize_t GetPacketCount()
{
int ignoreError;
return GetPacketCount(ignoreError);
}
hid_t GetTableId();
hid_t GetDatatype();
hid_t GetDataset();
int FreeBuff(size_t numStructs, hvl_t * buffer);
protected:
hid_t table_id;
};
class H5_HLCPPDLL FL_PacketTable : virtual public PacketTable
{
public:
FL_PacketTable(hid_t fileID, const char* name, hid_t dtypeID, hsize_t chunkSize = 0, hid_t plistID = H5P_DEFAULT);
FL_PacketTable(hid_t fileID, hid_t plist_id, const char* name, hid_t dtypeID, hsize_t chunkSize);
FL_PacketTable(hid_t fileID, char* name, hid_t dtypeID, hsize_t chunkSize, int compression = 0);
FL_PacketTable(hid_t fileID, const char* name);
FL_PacketTable(hid_t fileID, char* name);
virtual ~FL_PacketTable() {};
int AppendPacket(void * data);
int AppendPackets(size_t numPackets, void * data);
int GetPacket(hsize_t index, void * data);
int GetPackets(hsize_t startIndex, hsize_t endIndex, void * data);
int GetNextPacket(void * data);
int GetNextPackets(size_t numPackets, void * data);
};
#endif