aisl-sdk/components/todo.h

80 lines
1.3 KiB
C
Raw Normal View History

2019-06-24 07:42:56 +02:00
/******************************************************************************
*
* 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 */