// For now GET is not a request supported for now int Server::answer_get(MHD_Connection* connection, const char *url){ printf("IS IT A GET REQUEST\n"); if(strcmp(url, "/GetAvailableFactories") == 0){ printf("GetAvailableFactories %ld\n", fAvailableFactories.size()); string answerstring(""); for(map<string, pair<string, llvm_dsp_factory*> >::iterator it = fAvailableFactories.begin(); it != fAvailableFactories.end(); it++){ answerstring += " " + it->first; answerstring += " " + it->second.first; } return send_page(connection, answerstring.c_str(), answerstring.size(), MHD_HTTP_OK, "text/plain"); } else { return MHD_NO; } }
// parse input string int Clause::parse(const List<String> &list) { // set defaults values clear(); // check if list is empty if (list.isEmpty()) { // nothing to parse type = Empty; return(OK); } // list is not empty, get options. ListIterator<String> listIter(list); String options = listIter(); // parse options StringMatcher conclusionopt(options, String("CONCLUSION")); if (!conclusionopt.done()) partOfConclusion = 1; StringMatcher queryopt(options, String("QUERY")); if (!queryopt.done()) partOfQuery = 1; StringMatcher setofsupportopt(options, String("SET-OF-SUPPORT")); if (!setofsupportopt.done()) setOfSupport = 1; // scan list of literal strings for (listIter++; !listIter.done(); listIter++) { // insert literal into clause; will set type. Literal literal(listIter()); if (insert(literal) != OK) { ERROR("insert failed.", errno); return(NOTOK); } } // convert to a string convertToString(inputstring); // add answer literal if (partOfQuery) { int ivar = 0; String answerstring("( ANSWER "); StringTokens st(inputstring, " \t"); for ( ; !st.done(); st++) { String token = st(); if (token(0,2) == String("_V")) { ivar++; answerstring += token + String(" "); } else if (token(0,3) == String("_RV")) { ivar++; answerstring += token + String(" "); } } if (ivar == 0) { // no variables were found answerstring = String("ANSWER"); } else { // finish answer literal answerstring += String(") "); } // insert answer literal into answer clause Literal answerliteral(answerstring); if (insertAnswer(answerliteral) != OK) { ERROR("insertAnswer failed.", errno); return(NOTOK); } } // update clause type updateType(); // all done return(OK); }