diff --git a/src/db.c b/src/db.c index 92ced72..956a63b 100644 --- a/src/db.c +++ b/src/db.c @@ -1,9 +1,9 @@ /* * INPUT: query for previous state - * linked list of subjects to store + * linked list of tasks to store * * OUTPUT: - * linked list of subjects from file + * linked list of tasks from file * OK * * @@ -11,11 +11,3 @@ #include "planner.h" #include - -// serialize struct test format -const char format[] = "{%s = {%lu, %lu, %d, %lu}\n"; - -int serialize(Task *s) { - printf(format, s->name, s->created, s->deadline, s->priority, s->spare); - return 0; -} diff --git a/src/db.h b/src/db.h index ce91910..8f0dc15 100644 --- a/src/db.h +++ b/src/db.h @@ -2,6 +2,5 @@ #define DB #include "planner.h" -int serialize(Task *s); #endif diff --git a/src/iCal.c b/src/iCal.c index c534ccb..6ffc75e 100644 --- a/src/iCal.c +++ b/src/iCal.c @@ -4,4 +4,4 @@ * */ -#include "planner.h" // for subject and event structs +#include "planner.h" // for task and event structs diff --git a/src/llist.c b/src/llist.c index 0ff0c92..c406ab4 100644 --- a/src/llist.c +++ b/src/llist.c @@ -18,8 +18,8 @@ llist *llistNew(void *data, int (*cmpFN)(void *a, void *b)) { /*return last node of linked list; */ -llist *llistTail(llist *l) { - llist *tail = l; +llist *llistTail(llist *head) { + llist *tail = head; while (tail->next != NULL) { tail = tail->next; } diff --git a/src/planner.c b/src/planner.c index 3e80db8..401040b 100644 --- a/src/planner.c +++ b/src/planner.c @@ -8,6 +8,7 @@ #include "planner.h" // for subject and event structs // #include "config.h" +#include #include #include @@ -21,6 +22,13 @@ Event *newEvent(Task *t, time_t s, time_t e, uint64_t sp) { } return r; } +// pretty print Event +const char eventFormat[] = + "Event { %s = {\n start={%lu},\n end={%lu},\n spare={%lu}\n}\n"; +void printEvent(Event *s) { + printf(eventFormat, s->task->name, s->plannedStartTime, s->plannedEndTime, + s->spare); +} Task *newTask(char *n, time_t c, time_t d, int p, uint64_t sp) { Task *r = (Task *)malloc(sizeof(Task)); @@ -35,6 +43,13 @@ Task *newTask(char *n, time_t c, time_t d, int p, uint64_t sp) { return r; } +// pretty print task +const char taskFormat[] = "Task { %s = {\n created={%lu},\n deadline={%lu},\n " + "priority={%d},\n spare={%lu}\n}\n"; +void printTask(Task *s) { + printf(taskFormat, s->name, s->created, s->deadline, s->priority, s->spare); +} + // for llist int cmpTask(void *a, void *b) { Task *aa = (Task *)a; diff --git a/src/planner.h b/src/planner.h index 22ca46c..2cf4dec 100644 --- a/src/planner.h +++ b/src/planner.h @@ -31,12 +31,21 @@ Task *newTask(char *n, time_t c, time_t d, int p, uint64_t sp); */ int cmpTask(void *a, void *b); +/* + * prints human readable str of Task to stdout + */ +void printTask(Task *s); + /* * Event struct contains task and planned time frame * * used to create timetable * * eventNew(task, start, end, spare) + * task: pointer to task (Alloced with newTask) + * plannedStartTime: time_t + * plannedEndTime: time_t + * uint64_t spare var * */ typedef struct Event { diff --git a/src/test.c b/src/test.c index 6a6ca46..676b64d 100644 --- a/src/test.c +++ b/src/test.c @@ -11,8 +11,11 @@ int main() { time_t now = time(NULL); + // create new task named LinAlg with priority 3, created now with deadline in + // 5 days sp is currently unused spare var Task *t1 = newTask("LinAlg", now, now + days(5), 3, 0); + // Stack Allocated vars only for local use! Task t2 = { .name = "Phys", .created = now, .deadline = now + days(2), .priority = 7}; @@ -23,17 +26,20 @@ int main() { llistAppend(list1, &t2); // print test tasks - serialize(t1); - serialize(&t2); + printTask(t1); + printTask(&t2); // find in list & modify - Task search = {.name = "Phys"}; + Task search = {.name = "Phys"}; // key to look for. cmpTask only compares + // names using strcmp(a.name, b.name) llist *found = llistGet(list1, &search); if (found != NULL) { ((Task *)found->data)->deadline = time(NULL) + days(10); - serialize(found->data); + printTask(found->data); + } else { + printf("%s not in List!\n", search.name); } - serialize(&t2); + printTask(&t2); free(t1); return 0;