コード例 #1
0
void Promise::reject(const QVariantList &arguments)
{
  if (!isSettled()) {
    mState = State::REJECTED;
    emit rejected(arguments);
    complete(mOnReject, arguments);
  }
}
コード例 #2
0
void Promise::resolve(const QVariantList &arguments)
{
  if (!isSettled()) {
    mState = State::FULFILLED;
    emit resolved(arguments);
    complete(mOnResolve, arguments);
  }
}
コード例 #3
0
void CompasCommand::findMinimalDistances(Room * room)
{
	/*vector<Room*> adjecentRooms = getNeighbors(room);
	for (Room* adjecent : adjecentRooms) {
		if (getShortestDistance(adjecent) > getShortestDistance(room) + getWeight(adjecent)) {
			distance.insert(std::pair<Room*, int>(adjecent, getShortestDistance(room) + getWeight(adjecent)));
			predecessors.insert(std::pair<Room*, Room*>(adjecent, room));
			unsettledRooms.push_back(adjecent);
		}
	}*/

	if (room->DoesRoomHaveDoorway(Room::Direction::North)) {
		Room* adjecent = room->GetAdjecentRoom(Room::Direction::North);
		if (!isSettled(adjecent) && getShortestDistance(adjecent) > getShortestDistance(room) + room->getWeigthDoorway(Room::Direction::North) && room->GetAdjecentRoom(Room::Direction::North) != nullptr) {
			distance.insert(std::pair<Room*, int>(adjecent, getShortestDistance(room) + room->getWeigthDoorway(Room::Direction::North)));
			predecessors.insert(std::pair<Room*, Room*>(adjecent, room));
			unsettledRooms.push_back(adjecent);
		}
	}
	if (room->DoesRoomHaveDoorway(Room::Direction::East)) {
		Room* adjecent = room->GetAdjecentRoom(Room::Direction::East);
		if (!isSettled(adjecent) && getShortestDistance(adjecent) > getShortestDistance(room) + room->getWeigthDoorway(Room::Direction::East) && room->GetAdjecentRoom(Room::Direction::East) != nullptr) {
			distance.insert(std::pair<Room*, int>(adjecent, getShortestDistance(room) + room->getWeigthDoorway(Room::Direction::East)));
			predecessors.insert(std::pair<Room*, Room*>(adjecent, room));
			unsettledRooms.push_back(adjecent);
		}
	}
	if (room->DoesRoomHaveDoorway(Room::Direction::South)) {
		Room* adjecent = room->GetAdjecentRoom(Room::Direction::South);
		if (!isSettled(adjecent) && getShortestDistance(adjecent) > getShortestDistance(room) + room->getWeigthDoorway(Room::Direction::South) && room->GetAdjecentRoom(Room::Direction::South) != nullptr) {
			distance.insert(std::pair<Room*, int>(adjecent, getShortestDistance(room) + room->getWeigthDoorway(Room::Direction::South)));
			predecessors.insert(std::pair<Room*, Room*>(adjecent, room));
			unsettledRooms.push_back(adjecent);
		}
	}
	if (room->DoesRoomHaveDoorway(Room::Direction::West)) {
		Room* adjecent = room->GetAdjecentRoom(Room::Direction::West);
		if (!isSettled(adjecent) && getShortestDistance(adjecent) > getShortestDistance(room) + room->getWeigthDoorway(Room::Direction::West) && room->GetAdjecentRoom(Room::Direction::West) != nullptr) {
			distance.insert(std::pair<Room*, int>(adjecent, getShortestDistance(room) + room->getWeigthDoorway(Room::Direction::West)));
			predecessors.insert(std::pair<Room*, Room*>(adjecent, room));
			unsettledRooms.push_back(adjecent);
		}
	}
}
コード例 #4
0
ファイル: utimer.cpp プロジェクト: XiongMing/VideoPlayer
void UTimer::start(){

	if(!mFNTimer)return;

	if(isSettled()){
		if(!mIsRunning){
			mLastEntryTime = av_gettime();
			mIsRunning = true;
		}
		return;
	}

	utimer_link timer = (utimer_link)malloc(sizeof(struct utimer_node));

	timer->timer = this;
	timer->next = NULL;


	lock();

	if(!timer_head)timer_head = timer;
	else{
		timer->next = timer_head;
		timer_head = timer;
	}
	mIsRunning = true;
	mLastEntryTime = av_gettime();

	if(!timer_thread_started){
		//modify by eric
		timer_thread_started = true;
		//启动Timer线程
		if (pthread_create(&thread, NULL, timerThread, this->mData)) {
			ulog_err("pthread_create timerThread failed:start");
		}
	}
	unlock();
}