Exemplo n.º 1
0
int DTDMAClass::addTask(SchedulerTask task, uint32_t delay) {
	
	// Task cannot be added after scheduler has been started.
	if(getStarted() == true) {
		// TODO: Print message
		return -1;
	}
	
	TaskNode *tn = reinterpret_cast<TaskNode *>(malloc(sizeof(TaskNode)));
	tn->delay = delay;
	tn->task = task;
	tn->count = 0;
	
	totalTask++;
	tl_curr->totalTask++;
	
	// First task is added.
	if(tl_curr->totalTask == 1) {
		tl_curr->head = tn;
		tl_curr->curr = tn;
		tl_curr->tail = tn;
	}	
	
	tn->next = NULL;
	tl_curr->tail->next = tn;
	tl_curr->tail = tn;

	return 0;
}
Exemplo n.º 2
0
	void TransferApi::onTick(const Transfer* aTransfer, bool aIsDownload) noexcept {
		auto t = getTransfer(aTransfer->getToken());
		if (!t) {
			return;
		}

		t->setSpeed(aTransfer->getAverageSpeed());
		t->setBytesTransferred(aTransfer->getPos());
		t->setTimeLeft(aTransfer->getSecondsLeft());

		uint64_t timeSinceStarted = GET_TICK() - t->getStarted();
		if (timeSinceStarted < 1000) {
			t->setStatusString("Starting...");
		} else {
			t->setStatusString(STRING_F(RUNNING_PCT, t->getPercentage()));
		}

		view.onItemUpdated(t, { 
			TransferUtils::PROP_STATUS, TransferUtils::PROP_BYTES_TRANSFERRED, 
			TransferUtils::PROP_SPEED, TransferUtils::PROP_SECONDS_LEFT
		});
	}
Boolean UNIX_ClusteringService::getStarted(CIMProperty &p) const
{
	p = CIMProperty(PROPERTY_STARTED, getStarted());
	return true;
}
Boolean SambaService::getStarted(CIMProperty &p) const
{
	p = CIMProperty(PROPERTY_STARTED, getStarted());
	return true;
}