halapi
hierarchichalalignmentformatapi
hdf5_impl/hdf5MetaData.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 _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 
 All Classes Namespaces Functions Variables Friends