Back to index

nordugrid-arc-nox  1.1.0~rc6
JDLParser.h
Go to the documentation of this file.
00001 // -*- indent-tabs-mode: nil -*-
00002 
00003 #ifndef __ARC_JDLPARSER_H__
00004 #define __ARC_JDLPARSER_H__
00005 
00006 #include <list>
00007 #include <string>
00008 
00009 #include "JobDescriptionParser.h"
00010 
00019 namespace Arc {
00020 
00021   class JDLParser
00022     : public JobDescriptionParser {
00023   public:
00024     JDLParser();
00025     ~JDLParser();
00026     JobDescription Parse(const std::string& source) const;
00027     std::string UnParse(const JobDescription& job) const;
00028   private:
00029     bool splitJDL(const std::string& original_string,
00030                   std::list<std::string>& lines) const;
00031     bool handleJDLattribute(const std::string& attributeName,
00032                             const std::string& attributeValue,
00033                             JobDescription& job) const;
00034     std::string simpleJDLvalue(const std::string& attributeValue) const;
00035     std::list<std::string> listJDLvalue(const std::string& attributeValue,
00036                                         std::pair<char, char> bracket = std::make_pair('{', '}'),
00037                                         char lineEnd = ',') const;
00038     std::string generateOutputList(const std::string& attribute,
00039                                    const std::list<std::string>& list,
00040                                    std::pair<char, char> bracket = std::make_pair('{', '}'),
00041                                    char lineEnd = ',') const;
00042   };
00043 
00044 } // namespace Arc
00045 
00046 #endif // __ARC_JDLPARSER_H__