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 _HDF5METADATA_H 00008 #define _HDF5METADATA_H 00009 00010 #include <map> 00011 #include <string> 00012 #include <H5Cpp.h> 00013 #include "halMetaData.h" 00014 00015 namespace hal { 00016 00020 class HDF5MetaData : public MetaData 00021 { 00022 public: 00023 HDF5MetaData(); 00024 HDF5MetaData(H5::CommonFG* parent, 00025 const std::string& name); 00026 virtual ~HDF5MetaData(); 00027 00028 void set(const std::string& key, const std::string& value); 00029 const std::string& get(const std::string& key) const; 00030 bool has(const std::string& key) const; 00031 const std::map<std::string, std::string>& getMap() const; 00032 00033 void write(); 00034 00035 void open(H5::CommonFG* parent, 00036 const std::string& name); 00037 00038 protected: 00039 00040 static const std::string MetaGroupName; 00041 00042 H5::CommonFG* _parent; 00043 H5::Group _group; 00044 std::map<std::string, std::string> _map; 00045 bool _dirty; 00046 std::string _name; 00047 }; 00048 00049 00050 } 00051 #endif 00052