Back to index

nordugrid-arc-nox  1.1.0~rc6
ARCJSDLParser.h
Go to the documentation of this file.
00001 // -*- indent-tabs-mode: nil -*-
00002 
00003 #ifndef __ARC_ARCJSDLPARSER_H__
00004 #define __ARC_ARCJSDLPARSER_H__
00005 
00006 #include <string>
00007 
00008 #include "JobDescriptionParser.h"
00009 
00025 namespace Arc {
00026 
00027   class ARCJSDLParser
00028     : public JobDescriptionParser {
00029   public:
00030     ARCJSDLParser();
00031     ~ARCJSDLParser();
00032     JobDescription Parse(const std::string& source) const;
00033     std::string UnParse(const JobDescription& job) const;
00034   private:
00035     bool parseSoftware(XMLNode xmlSoftware, SoftwareRequirement& sr) const;
00036     void outputSoftware(const SoftwareRequirement& sr, XMLNode& xmlSoftware) const;
00037 
00038     template<typename T>
00039     void parseRange(XMLNode xmlRange, Range<T>& range, const T& undefValue) const;
00040     template<typename T>
00041     Range<T> parseRange(XMLNode xmlRange, const T& undefValue) const;
00042     template<typename T>
00043     void outputARCJSDLRange(const Range<T>& range, XMLNode& arcJSDL, const T& undefValue) const;
00044     template<typename T>
00045     void outputJSDLRange(const Range<T>& range, XMLNode& jsdl, const T& undefValue) const;
00046 
00047 
00048     void parseBenchmark(XMLNode xmlBenchmark, std::pair<std::string, double>& benchmark) const;
00049     void outputBenchmark(const std::pair<std::string, double>& benchmark, XMLNode& xmlBenchmark) const;
00050   };
00051 
00052 } // namespace Arc
00053 
00054 #endif // __ARC_POSIXJSDLPARSER_H__