Exemplo n.º 1
0
list<Task> DataStorage::load (TimePeriod period)
{
	list<Task> taskList;
	list<TaskNode*>::iterator iter;
	list<TaskNode*>::iterator endIter = _indxTasks.end ();
	if ((period.get_start_time ().get_date () == Time::DFLT_DATE && period.get_end_time ().get_date () == Time::DFLT_DATE) ||
		(period.get_start_time ().get_date () == Time::INF_DATE && period.get_end_time ().get_date () == Time::INF_DATE)) {
		for (iter = _indxTasks.begin (), iter++; iter != endIter; iter++) {
			if ((*iter)->_active)
				taskList.push_back ((*iter)->_task);
		}
	} else {
		bool clash = false;
		for (iter = _indxTasks.begin (); iter != endIter; iter++) {
			if ((*iter)->_active) {
				if ((*iter)->_task.timeTask)
					clash = checkTimeClash (*iter, &period);
				else
					clash = checkPeriodClash (*iter, &period);
			}

			if (clash == true) {
				taskList.push_back ((*iter)->_task);
				clash = false;
			}
		}
	}

	return taskList;
}