diff options
| -rw-r--r-- | server/src/macroparser.cc | 38 | ||||
| -rw-r--r-- | server/src/macroparser.h | 6 | ||||
| -rw-r--r-- | server/src/server.cc | 44 | ||||
| -rw-r--r-- | server/src/template.h | 4 | ||||
| -rw-r--r-- | server/src/templateparser.cc | 13 | ||||
| -rw-r--r-- | server/src/templateparser.h | 2 | 
6 files changed, 42 insertions, 65 deletions
| diff --git a/server/src/macroparser.cc b/server/src/macroparser.cc index 9175c07..356de1f 100644 --- a/server/src/macroparser.cc +++ b/server/src/macroparser.cc @@ -68,7 +68,7 @@ MacroParser::MacroParser(std::string macro)    state = UNDEFINED;    m = NULL;    current_map = NULL; -  current_luaprogram = NULL; +  current_script = NULL;    file = XML"/macros/" + macro + ".xml"; @@ -91,9 +91,9 @@ void MacroParser::characterData(std::string &data)      current_map->attributes["lua"].append(data);    } -  if(state == LUAPROGRAM) { -    assert(current_luaprogram); // No lua program present! -    current_luaprogram->attributes["lua"].append(data); +  if(state == SCRIPT) { +    assert(current_script); // No script present! +    current_script->attributes["code"].append(data);    }  } @@ -161,10 +161,10 @@ void MacroParser::startTag(std::string name, std::map< std::string, std::string>      return;    } -  // Enable LUA Program parsing -  if(name == "luaprograms") { -    if(state != MACRO) error("luaprograms found outside macro."); -    state = LUAPROGRAMS; +  // Enable script parsing +  if(name == "scripts") { +    if(state != MACRO) error("scripts found outside macro."); +    state = SCRIPTS;      assert(m); // No macro is currently available, cannot create maps! @@ -172,16 +172,16 @@ void MacroParser::startTag(std::string name, std::map< std::string, std::string>    }    // Create Query -  if(name == "luaprogram") { -    if(state != LUAPROGRAMS) error("lua program found outside maps."); -    state = LUAPROGRAM; +  if(name == "script") { +    if(state != SCRIPTS) error("script found outside scripts."); +    state = SCRIPT;      assert(m); // No macro is currently available, cannot create map! -    LUAProgram l; -    l.attributes = attributes; -    m->luaprograms.push_back(l); -    current_luaprogram = &(m->luaprograms.back()); +    Script s; +    s.attributes = attributes; +    m->scripts.push_back(s); +    current_script = &(m->scripts.back());      return;    } @@ -243,10 +243,10 @@ void MacroParser::endTag(std::string name)      current_map = NULL;      state = MAPS;    } -  if(name == "luaprograms") state = MACRO; -  if(name == "luaprogram") { -    current_luaprogram = NULL; -    state = LUAPROGRAMS; +  if(name == "scripts") state = MACRO; +  if(name == "script") { +    current_script = NULL; +    state = SCRIPTS;    }    if(name == "window") state = MACRO; diff --git a/server/src/macroparser.h b/server/src/macroparser.h index 0b755f0..cbd36ba 100644 --- a/server/src/macroparser.h +++ b/server/src/macroparser.h @@ -39,8 +39,8 @@ class MacroParser : public SAXParser {      MAPS,      MAP,      WINDOW, -    LUAPROGRAMS, -    LUAPROGRAM +    SCRIPTS, +    SCRIPT    } ParserState;  public: @@ -66,7 +66,7 @@ private:    ParserState state;    Macro *m;    Map *current_map; -  LUAProgram *current_luaprogram; +  Script *current_script;    std::vector< Widget* > widgetstack;    // Error callback function. diff --git a/server/src/server.cc b/server/src/server.cc index 1bd0ccf..65fd782 100644 --- a/server/src/server.cc +++ b/server/src/server.cc @@ -83,28 +83,18 @@ static void connection(TCPSocket &socket)        while(i != transaction.commits.end()) {          Commit &commit = *i; -        /* -          Macro macro; -          MacroParser parser(commit.macro, macro); -          parser.parse(); -        */        -         -        Macro macro; -        macro.attributes["name"] = commit.macro; -        macro.attributes["version"] = "1.0";//commit.version; -         -        db.commit(transaction.user, transaction.cpr, macro, commit.fields); +        MacroParser mp(commit.macro); +        mp.parse(); +        Macro *macro = mp.getMacro(); + +        db.commit(transaction.user, transaction.cpr, *macro, commit.fields); -        /* -          std::string resume = resume_parser(macro.format.c_str(), commit); +        std::string resume = resume_parser(macro->attributes["resume"].c_str(), commit); -          std::string journal_commit_addr = config()->lookup("journal_commit_addr"); -          int journal_commit_port = config()->lookup("journal_commit_port"); -           -          journal_commit(transaction.cpr.c_str(), transaction.user.c_str(), -          journal_commit_addr.c_str(), journal_commit_port, -          resume.c_str(), resume.length()); -        */ +        journal_commit(transaction.cpr.c_str(), transaction.user.c_str(), +                       Conf::journal_commit_addr.c_str(), Conf::journal_commit_port, +                       resume.c_str(), resume.length()); +          i++;        }      } @@ -175,20 +165,22 @@ static void connection(TCPSocket &socket)          answer += "    <macro name=\"" + macro.attributes["name"] + "\" completed=";          if(db.checkMacro(transaction.cpr, macro.attributes["name"])) answer += "\"true\"";          else answer += "\"false\""; +        // answer += " resume=\"" + macro.attributes["resume"] + "\"";          answer += ">\n";          if(macro.attributes["name"] == request.macro) {            // Handle lua programs -          if(m->luaprograms.size()) { +          if(m->scripts.size()) {              answer += "      <scripts>\n"; -            std::vector< LUAProgram >::iterator lpi = m->luaprograms.begin(); -            while(lpi != m->luaprograms.end()) { -              answer += "        <script language=\"lua\" name=\"" + lpi->attributes["name"] + "\">\n"; -              answer += xml_encode(lpi->attributes["lua"]); +            std::vector< Script >::iterator spi = m->scripts.begin(); +            while(spi != m->scripts.end()) { +              answer += "        <script language=\"" + spi->attributes["language"]  +                + "\" name=\"" + spi->attributes["name"] + "\">\n"; +              answer += xml_encode(spi->attributes["code"]);                answer += "\n        </script>\n"; -              lpi++; +              spi++;              }              answer += "      </scripts>\n";            } diff --git a/server/src/template.h b/server/src/template.h index f19746a..d047712 100644 --- a/server/src/template.h +++ b/server/src/template.h @@ -36,7 +36,7 @@ public:    std::map< std::string, std::string > attributes;  }; -class LUAProgram { +class Script {  public:    std::map< std::string, std::string > attributes;  }; @@ -55,7 +55,7 @@ class Macro {  public:    std::vector< Query > queries;    std::vector< Map > maps; -  std::vector< LUAProgram > luaprograms; +  std::vector< Script > scripts;    Widget window;    std::map< std::string, std::string > attributes;  }; diff --git a/server/src/templateparser.cc b/server/src/templateparser.cc index 1fecc20..8874b74 100644 --- a/server/src/templateparser.cc +++ b/server/src/templateparser.cc @@ -68,8 +68,6 @@ TemplateParser::TemplateParser(std::string course)    state = UNDEFINED;    t = new Template();    current_macro = NULL; -  current_map = NULL; -  current_luaprogram = NULL;    file = XML"/templates/" + course + ".xml"; @@ -87,17 +85,6 @@ TemplateParser::~TemplateParser()  void TemplateParser::characterData(std::string &data)  { -  /* -  if(state == MAP) { -    assert(current_map); // No map present! -    current_map->attributes["lua"].append(data); -  } - -  if(state == LUAPROGRAM) { -    assert(current_luaprogram); // No lua program present! -    current_luaprogram->attributes["lua"].append(data); -  } -  */  }  void TemplateParser::startTag(std::string name, std::map< std::string, std::string> attributes) diff --git a/server/src/templateparser.h b/server/src/templateparser.h index 596bf27..f69009a 100644 --- a/server/src/templateparser.h +++ b/server/src/templateparser.h @@ -67,8 +67,6 @@ private:    ParserState state;    Template *t;    Macro *current_macro; -  Map *current_map; -  LUAProgram *current_luaprogram;    std::vector< Widget* > widgetstack;    // Error callback function. | 
