Exemplo n.º 1
0
// 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;
    }
}
Exemplo n.º 2
0
Arquivo: clause.cpp Projeto: ombt/ombt
// 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);
}