00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef OPENMS_FORMAT_MZDATAFILE_H
00028 #define OPENMS_FORMAT_MZDATAFILE_H
00029
00030 #include <OpenMS/FORMAT/XMLFile.h>
00031 #include <OpenMS/FORMAT/PeakFileOptions.h>
00032 #include <OpenMS/FORMAT/HANDLERS/MzDataHandler.h>
00033 #include <OpenMS/CONCEPT/ProgressLogger.h>
00034
00035 namespace OpenMS
00036 {
00042 class MzDataFile
00043 : public Internal::XMLFile,
00044 public ProgressLogger
00045 {
00046 public:
00048 MzDataFile();
00050 ~MzDataFile();
00051
00053 PeakFileOptions& getOptions();
00054
00056 const PeakFileOptions& getOptions() const;
00057
00063 template <typename MapType>
00064 void load(const String& filename, MapType& map) throw (Exception::FileNotFound, Exception::ParseError)
00065 {
00066 map.reset();
00067
00068 Internal::MzDataHandler<MapType> handler(map,filename,schema_version_,*this);
00069 handler.setOptions(options_);
00070 parse_(filename, &handler);
00071 }
00072
00078 template <typename MapType>
00079 void store(const String& filename, const MapType& map)
00080 const throw (Exception::UnableToCreateFile)
00081 {
00082 Internal::MzDataHandler<MapType> handler(map,filename,schema_version_,*this);
00083 handler.setOptions(options_);
00084 save_(filename, &handler);
00085 }
00086
00087 private:
00088 PeakFileOptions options_;
00089 };
00090
00091 }
00092
00093 #endif // OPENMS_FOMAT_MZXMLFILE_H