halapi
hierarchichalalignmentformatapi
|
00001 /* 00002 * Copyright (C) 2012 by Glenn Hickey (hickey@soe.ucsc.edu) 00003 * 00004 * Released under the MIT license, see LICENSE.txt 00005 */ 00006 00007 #ifndef _HDF5DNAARRAY_H 00008 #define _HDF5DNAARRAY_H 00009 00010 #include <cassert> 00011 #include <H5Cpp.h> 00012 #include "rawH5ExternalArray.h" 00013 00014 namespace hal { 00015 00020 class Hdf5DnaArray 00021 { 00022 public: 00023 00025 Hdf5DnaArray(); 00026 00028 virtual ~Hdf5DnaArray(); 00029 00035 void create(H5File* file, 00036 const std::string& path, 00037 hsize_t size, 00038 const H5::DSetCreatPropList& cparms = 00039 H5::DSetCreatPropList::DEFAULT); 00040 00044 void open(H5File* file, 00045 const std::string& path); 00046 00048 void write(); 00049 00052 Hdf5DnaIterator getDnaIterator(hsize_t offset = 0); 00053 00056 Hdf5DnaConstIterator getDnaConstIterator(hsize_t offset = 0); 00057 00059 hsize_t size(); 00060 00061 protected: 00062 00063 RawH5ExternalArray _array; 00064 }; 00065 00066 // INLINE METHODS 00067 00068 inline Hdf5DnaArray::getDnaIterator(hsize_t offset) 00069 { 00070 assert(offset < size()); 00071 return DnaIterator(_array, offset); 00072 } 00073 00074 inline Hdf5DnaConstIterator(hsize_t offset) 00075 { 00076 assert(offset < size()); 00077 return DnaIterator(_array, offset); 00078 } 00079 00080 }