Exemple #1
0
bool client_snapshot(int from_gid, int from_tid, int to, int sid, const char *msg)
{
	if (message_filter != -1 && message_filter != to)
		return true;
	
	Tokenizer t;
	t.parse(msg);
	
	const char *ssnaptype = "Unknown snaptype";
	switch (sid)
	{
		case SnapGameState:	ssnaptype = "SnapGameState";	break;
		case SnapTable:		ssnaptype = "SnapTable";	break;
		case SnapCards:		ssnaptype = "SnapCards";	break;
		case SnapWinPot:	ssnaptype = "SnapWinPot";	break;
		case SnapOddChips:	ssnaptype = "SnapOddChips";	break;
		case SnapPlayerAction:	ssnaptype = "SnapPlayerAction";	break;
		case SnapPlayerShow:	ssnaptype = "SnapPlayerShow";	break;
		
	}
	
	
	if (sid == SnapWinPot)
	{
		int cid, pot, amount;
		t >> cid >> pot >> amount;
		log_msg(ssnaptype, "cid=%d pot=%d amount=%d",
			 cid, pot, amount);
	}
ErrorCode TbbProcessor::MatchDocument(DocID doc_id, const char* doc_str)
{
    uint64_t len=strlen(doc_str);
    std::shared_ptr<char> str(reinterpret_cast<char*>(operator new(len+1)));
    memcpy(str.get(),doc_str,len+1);

    matchingTg.run([&,str,len,doc_id,this]() {
        Tokenizer tokenizer;
        tokenizer.parse(str.get(),len);

        std::vector<uint32_t> edQueries,hammingIds,exactQueries;

        tbb::task_group tg;
        tg.run([&,this](){ exactQueries=indexes.exactIndex.matchDocument(tokenizer); });
        tg.run([&,this](){ hammingIds=indexes.hammingIndex.matchDocument(tokenizer); });
        tg.run([&,this](){ edQueries=indexes.edIndex.matchDocument(tokenizer); });
        tg.wait();

        std::vector<QueryID> query_ids; query_ids.reserve(exactQueries.size()+hammingIds.size()+edQueries.size());
        query_ids.insert(query_ids.end(),edQueries.begin(),edQueries.end());
        query_ids.insert(query_ids.end(),hammingIds.begin(),hammingIds.end());
        query_ids.insert(query_ids.end(),exactQueries.begin(),exactQueries.end());

        docs.push(Document(doc_id,query_ids));
    });

	return EC_SUCCESS;
}
TEST_F(MatcherTests,MassiveAdd) {
	EditDistance a;
	for (uint64_t index=0;index<1000000;++index)
		a.addQuery(index,random()%3,randomWordVector());

	std::string s=randomString(1000000);
	Tokenizer t;
	t.parse(s.c_str(),s.length());

	a.matchDocument(t);
}
int main(void){
	Tokenizer* token = new Tokenizer();
	Result* r = token->parse("1 + 2 + 3");
	// 6 * 2 -> 12 -> 19
	//r->calc();
	//cout << ((3 * 2) * 2 + (1 + 6)) * 15 / (2 + 1) << endl;
	//cout << r->debug() << endl;
	//cout << r->calc() << endl;
	system("pause");
	return 0;
}
bool ConfigParser::load(const char *filename)
{
	filetype *fp;
	
	fp = file_open(filename, mode_read);
	
	if (!fp)
		return false;
	
	char buffer[1024];
	
	// parse each line in config-file
	while (file_readline(fp, buffer, sizeof(buffer)))
	{
		Tokenizer t;
		t.parse(buffer);
		
		// skip blank lines
		if (!t.count())
			continue;
		
		string varname = t.getNext();
		
		// skip comments
		if (varname[0] == '#')
			continue;
		
		string value = t.getTillEnd();
		
		vars[varname] = value;
	}
	
	file_close(fp);
	
	return true;
}