parallax 1.0
command-line based task/todo manager
Loading...
Searching...
No Matches
task.h
Go to the documentation of this file.
1#ifndef TASK_H
2#define TASK_H
3
4#include <stdlib.h>
5#include <stdio.h>
6#include <stddef.h> // for size_t
7#include <string.h>
8
9#define MAX_TABLE_SIZE 50
10
11typedef struct HashMap HashMap; // prevents circular dependency
12
21
22
28typedef struct Task
29{
30 char* task_class;
33
45
46
57
66Task* create_task(char* class_of_task, char* task_content);
67
76TaskClass* create_task_class(char* class_of_task, size_t class_size);
77
85TaskCollection* create_task_collection(size_t collection_size);
86
87
96Task* get_task(TaskClass* task_class, const char* key);
97
104void add_task(TaskClass* task_class, Task* new_task);
105
114TaskClass* get_task_class(TaskCollection* task_collection, const char* key);
115
122void add_task_class(TaskCollection* task_collection, TaskClass* task_class);
123
124
131void remove_task(TaskClass* task_class, char* task_content);
132
139void remove_task_class(TaskCollection* task_collection, char* class_name);
140
146void print_task(Task* task);
147
148
149#endif //TASK_H
Hashmap structure.
Definition hashmap.h:26
A task class containing other tasks.
Definition task.h:40
char * task_class_name
Definition task.h:41
size_t table_size
Definition task.h:42
HashMap * task_class_table
Definition task.h:43
A task collection containing other classes.
Definition task.h:53
HashMap * task_collection
Definition task.h:54
size_t collection_size
Definition task.h:55
A basic task.
Definition task.h:29
char * task_content
Definition task.h:31
char * task_class
Definition task.h:30
void remove_task(TaskClass *task_class, char *task_content)
Removes a task from a task class by its content.
Definition task.c:140
TaskClass * get_task_class(TaskCollection *task_collection, const char *key)
Gets a task class by its class name from a task collection.
Definition task.c:98
void add_task_class(TaskCollection *task_collection, TaskClass *task_class)
Adds a task class to a task collection.
Definition task.c:123
TaskCollection * create_task_collection(size_t collection_size)
Creates a task collection of known size.
Definition task.c:36
Task * create_task(char *class_of_task, char *task_content)
Creates a task of known class and content.
Definition task.c:16
void remove_task_class(TaskCollection *task_collection, char *class_name)
Removes a task class from a task collection.
Definition task.c:156
Task * get_task(TaskClass *task_class, const char *key)
Finds a task in a task class by its content.
Definition task.c:47
TaskClass * create_task_class(char *class_of_task, size_t class_size)
Creates a task class of a known class and size.
Definition task.c:24
void add_task(TaskClass *task_class, Task *new_task)
Adds a task to a task class.
Definition task.c:74
void print_task(Task *task)
Prints the content of a task.
Definition task.c:172