LRAUV  revA
HDF5LogWriter.h
Go to the documentation of this file.
1 
11 #ifndef HDF5LOGWRITER_H_
12 #define HDF5LOGWRITER_H_
13 
14 #include "data/BinaryDataType.h"
15 #include "logger/FilterLogWriter.h"
16 #include "logger/HasFilename.h"
17 #include "utils/HDF5.h"
18 #include "utils/Str.h"
19 
20 class DataValue;
21 
33 {
34 public:
35 
37  HDF5LogWriter( const Str& filename, bool version4, int varCount, char** varList, char** unitList,
38  int attCount = 0, char** attList = NULL );
39 
41  virtual ~HDF5LogWriter();
42 
44  unsigned int writeHeader();
45 
48  unsigned int write( const LogEntry *entry, const Unit* unit = NULL );
49 
51  unsigned int writeFooter();
52 
54  const Str& getFilename()
55  {
56  return filename_;
57  }
58 
59 protected:
60 
61  // Override this method to do something special with data entries
62  virtual unsigned int writeData( const DataEntry *dataEntry, int index, const Unit* unit );
63 
64  // Override this method to do something special with attribute entries
65  virtual unsigned int writeAtt( const DataEntry *dataEntry, int index, const Unit* unit );
66 
67 private:
68  // Note that the copy constructor below is private and not given a body.
69  // Any attempt to call it will return a compiler error.
70  HDF5LogWriter( const HDF5LogWriter& old ); // disallow copy constructor
71 
74 
76  void addVar( const int index, const ElementURI* uri,
77  BinaryDataType binaryType, const Unit& unit,
78  short universalCode, bool useChunks );
79 
81  void setAttValue( const DataEntry *dataEntry, const int attIndex );
82 
83  const Str filename_;
86  bool finalized_;
89 
90 };
91 
92 #endif /*HDF5LOGWRITER_H_*/
Defines a LogWriter that generates a text table of values.
Definition: FilterLogWriter.h:32
HDF5Dataset ** vars_
Definition: HDF5LogWriter.h:87
BinaryDataType
These are binary type identifiers for serializing and unserializing The syntax below handles up to 16...
Definition: BinaryDataType.h:39
void addVar(const int index, const ElementURI *uri, BinaryDataType binaryType, const Unit &unit, short universalCode, bool useChunks)
Add a new variable.
Definition: HDF5LogWriter.cpp:211
bool hdf5LogWriterInitialized_
Definition: HDF5LogWriter.h:85
unsigned int write(const LogEntry *entry, const Unit *unit=NULL)
Write an entry to the buffer.
Definition: HDF5LogWriter.cpp:63
Definition: HDF5.h:182
void initializeHDF5LogWriter()
Initialize variables, etc.
Definition: HDF5LogWriter.cpp:153
void setAttValue(const DataEntry *dataEntry, const int attIndex)
Set an attribute value.
const Str filename_
Definition: HDF5LogWriter.h:83
A DataValue is an abstract base class for a data value and associated engineering units of the value...
Definition: DataValue.h:35
One "entry" in a LogQueue.
Definition: LogEntry.h:33
bool finalized_
Definition: HDF5LogWriter.h:86
Code unit that represents an atomic unit of data destined for writing in the log file.
Definition: DataEntry.h:43
const Str & getFilename()
Return the filename.
Definition: HDF5LogWriter.h:54
Replacement for standard template class string.
Definition: Str.h:12
virtual ~HDF5LogWriter()
Destructor.
Definition: HDF5LogWriter.cpp:42
Simple Interface that contains getFilename() function.
Definition: HDF5.h:212
Contains the FilterLogWriter class definition.
virtual unsigned int writeData(const DataEntry *dataEntry, int index, const Unit *unit)
Definition: HDF5LogWriter.cpp:90
Contains the HDF5 class declaration.
unsigned int writeHeader()
Start writing the NetCDF file.
Definition: HDF5LogWriter.cpp:53
Contains the BinaryDataType enumeration.
virtual unsigned int writeAtt(const DataEntry *dataEntry, int index, const Unit *unit)
Definition: HDF5LogWriter.cpp:112
Code unit that represents a unique name for a DataElement.
Definition: ElementURI.h:27
HDF5File * hdf5File_
Definition: HDF5LogWriter.h:84
unsigned int writeFooter()
Finish writing the NetCDF file.
Definition: HDF5LogWriter.cpp:117
Simple Interface that contains getFilename() function.
Definition: HasFilename.h:20
HDF5LogWriter(const Str &filename, bool version4, int varCount, char **varList, char **unitList, int attCount=0, char **attList=NULL)
Constructor.
Definition: HDF5LogWriter.cpp:24
Code that represents an engineering unit.
Definition: Unit.h:24
Defines a LogWriter that generates a NetCDF table of values.
Definition: HDF5LogWriter.h:32
HDF5Dataset ** timeVars_
Definition: HDF5LogWriter.h:88