80 lines
1.3 KiB
C
80 lines
1.3 KiB
C
|
/******************************************************************************
|
||
|
*
|
||
|
* Copyright (c) 2017-2019 by Löwenware Ltd
|
||
|
* Please, refer LICENSE file for legal information
|
||
|
*
|
||
|
******************************************************************************/
|
||
|
|
||
|
/**
|
||
|
* @file todo.h
|
||
|
* @author Ilja Kartašov <ik@lowenware.com>
|
||
|
* @brief ToDo.txt module
|
||
|
*
|
||
|
* @see https://lowenware.com/
|
||
|
*/
|
||
|
|
||
|
#ifndef TODO_H_FAD28DF0_DA05_4436_88E5_E3715DA254E8
|
||
|
#define TODO_H_FAD28DF0_DA05_4436_88E5_E3715DA254E8
|
||
|
|
||
|
#include <stdio.h>
|
||
|
#include <stdbool.h>
|
||
|
#include <time.h>
|
||
|
#include <aisl/aisl.h>
|
||
|
#include <cStuff/list.h>
|
||
|
|
||
|
|
||
|
struct ax_todo {
|
||
|
uuid_t id;
|
||
|
FILE *fd;
|
||
|
struct cstuff_list list;
|
||
|
};
|
||
|
|
||
|
typedef struct ax_todo * AxTodo;
|
||
|
|
||
|
|
||
|
struct ax_todo_task {
|
||
|
uuid_t task_id;
|
||
|
char priority;
|
||
|
time_t completion;
|
||
|
time_t creation;
|
||
|
char *description;
|
||
|
bool is_done;
|
||
|
};
|
||
|
|
||
|
typedef struct ax_todo_task * AxTodoTask;
|
||
|
|
||
|
|
||
|
AislStatus
|
||
|
ax_todo_init(AxTodo self, const char *file);
|
||
|
|
||
|
|
||
|
void
|
||
|
ax_todo_release(AxTodo self);
|
||
|
|
||
|
|
||
|
AislStatus
|
||
|
ax_todo_read(AxTodo self);
|
||
|
|
||
|
|
||
|
AislStatus
|
||
|
ax_todo_write(AxTodo self);
|
||
|
|
||
|
|
||
|
AxTodoTask
|
||
|
ax_todo_task_new(void);
|
||
|
|
||
|
|
||
|
void
|
||
|
ax_todo_task_release(AxTodoTask task);
|
||
|
|
||
|
|
||
|
void
|
||
|
ax_todo_task_free(AxTodoTask task);
|
||
|
|
||
|
|
||
|
AislStatus
|
||
|
ax_todo_task_set(AxTodoTask task, char *buf, ssize_t length);
|
||
|
|
||
|
|
||
|
#endif /* !TODO_H */
|