halapi
hierarchichalalignmentformatapi
hdf5_impl/hdf5DnaArray.h
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 }
 All Classes Namespaces Functions Variables Friends