status_t TaskMerge::MergeIn(BObjectList<Task> *newTaskList) { status_t err = B_OK; int32 i = 0; Task *tmpTask = NULL; Task *foundTask = NULL; Task *mergedTask = NULL; //run throught all of the newTaskList ... for (i=0;newTaskList->CountItems();i++){ tmpTask = newTaskList->ItemAt(i); foundTask=GetTask(BString(tmpTask->ID())); if (foundTask!=NULL){ mergedTask = MergeTasks(tmpTask, foundTask); UpdateTask(tmpTask->ID(),mergedTask); } else{ //add it to all other Syncers as Add.. taskList->AddItem(tmpTask); } } return err; }
Task* TaskFS::GetTask(BString forID) { Task *tmpTask = NULL; int32 i = 0; bool found = false; //grab a up to date List of Items GetTasks(); while (i<tasks->CountItems() && found!=true) { tmpTask=tasks->ItemAt(i); found = tmpTask->ID() == forID; i++; } if (found == true) return tmpTask; else return NULL; }