コード例 #1
0
ファイル: buckethandler.cpp プロジェクト: songhtdo/vespa
void
BucketHandler::handleSetCurrentState(const BucketId &bucketId,
                                     storage::spi::BucketInfo::ActiveState newState,
                                     IGenericResultHandler &resultHandler)
{
    _executor.execute(makeTask(makeClosure(this,
                                           &proton::BucketHandler::performSetCurrentState,
                                           bucketId, newState, &resultHandler)));
}
コード例 #2
0
ファイル: buckethandler.cpp プロジェクト: songhtdo/vespa
void
BucketHandler::handlePopulateActiveBuckets(document::BucketId::List &buckets,
                                           IGenericResultHandler &resultHandler)
{
    _executor.execute(makeTask(makeClosure(this,
            &proton::BucketHandler::
            performPopulateActiveBuckets,
            buckets,
            &resultHandler)));
}
コード例 #3
0
ファイル: monster.cpp プロジェクト: divinity76/server
void Monster::startThink()
{
	if(!eventCheck){
		//eventCheck = g_game.addEvent(makeTask(500, std::bind2nd(std::mem_fun(&Game::checkCreature), getID())));
		onThink(1000);
	}

	if(!eventCheckAttacking){
		eventCheckAttacking = g_game.addEvent(makeTask(500, boost::bind(&Game::checkCreatureAttacking, &g_game, getID(), 500)));
	}
}
コード例 #4
0
ファイル: spawn.cpp プロジェクト: divinity76/YurOTS
bool SpawnManager::startup()
{
	for(spawnsList::iterator it = spawns.begin(); it != spawns.end(); ++it) {
		(*it)->startup();
	}

	if(!spawns.empty()) {
		game->addEvent(makeTask(20000, std::bind2nd(std::mem_fun(&Game::checkSpawns), 20000)));
	}

	return true;
}
コード例 #5
0
Task* initScheduler(int M, int N)
{
	Task* taskGrid;
	int i, j;

	taskGrid = malloc(M*N*sizeof(Task));

	for(i = 0; i < M; i ++)
	{
		for(j = 0; j < N; j ++)
		{
			tgrid(i,j).l = i;
			tgrid(i,j).m = j;
			tgrid(i,j).taskStatus = NONE;
			tgrid(i,j).k = 0;
		}
	}

	makeTask(taskGrid, M, 0, 0, QRS, READY, 0);

	return taskGrid;
}
コード例 #6
0
void doneATask(Task* taskGrid, int M, int N, Task t)
{
	int k, j, p, q;
	enum Type tType, tTypeNext;

	p = t.l;
	q = t.m;
	k = tgrid(p,q).k;
	tType = getNextType(p, q, k);
	tgrid(p,q).taskStatus = DONE;
	
	switch(tType)
	{
		case QRS:
		{
			for(j = k + 1; j < N; j ++)//check along row
			{
				if(candoSAPP(taskGrid, M, N, p, j, k))
					makeTask(taskGrid, M, p, j, SAPP, READY, k);
			}

			if(candoQRD(taskGrid, M, N, p+1, q, k))//check one below
				makeTask(taskGrid, M, p+1, q, QRD, READY, k);
			break;
		}
		case SAPP:
		{
			if(candoDAPP(taskGrid, M, N, p+1, q, k))//check one below
				makeTask(taskGrid, M, p+1, q, DAPP, READY, k);
			break;
		}
		case QRD:
		{
			for(j = k + 1; j < N; j ++)
			{
				if(candoDAPP(taskGrid, M, N, p, j, k))//check along row
					makeTask(taskGrid, M, p, j, DAPP, READY, k);
			}
			
			if(candoQRD(taskGrid, M, N, p+1, q, k))//check one below
				makeTask(taskGrid, M, p+1, q, QRD, READY, k);
			break;
		}
		case DAPP:
		{
			tTypeNext = getNextType(p, q, k + 1);

			switch(tTypeNext)//check whether can activate any for next step
			{
				case QRS:
				{
					if(candoQRS(taskGrid, M, N, p, q, k + 1))
						makeTask(taskGrid, M, p, q, QRS, READY, k + 1);
					break;
				}
				case SAPP:
				{
					if(candoSAPP(taskGrid, M, N, p, q, k + 1))
						makeTask(taskGrid, M, p, q, SAPP, READY, k + 1);
					break;
				}
				case QRD:
				{
					if(candoQRD(taskGrid, M, N, p, q, k + 1))
						makeTask(taskGrid, M, p, q, QRD, READY, k + 1);
					break;
				}
				case DAPP:
				{
					if(candoDAPP(taskGrid, M, N, p, q, k + 1))
						makeTask(taskGrid, M, p, q, DAPP, READY, k + 1);
					break;
				}
			}
			
			if(candoDAPP(taskGrid, M, N, p + 1, q, k))//check one below in current step
				makeTask(taskGrid, M, p + 1, q, DAPP, READY, k);
			break;
		}
	}
}