Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00034 #ifndef SCHEDULER_TASK_H
00035 #define SCHEDULER_TASK_H
00036
00037 #include "config.h"
00038 #include "shared/allocator.h"
00039
00040 #include <ldns/ldns.h>
00041
00042 enum task_id_enum {
00043 TASK_NONE = 0,
00044 TASK_SIGNCONF,
00045 TASK_READ,
00046 TASK_NSECIFY,
00047 TASK_SIGN,
00048 TASK_AUDIT,
00049 TASK_WRITE
00050 };
00051 typedef enum task_id_enum task_id;
00052
00056 typedef struct task_struct task_type;
00057 struct task_struct {
00058 allocator_type* allocator;
00059 task_id what;
00060 task_id interrupt;
00061 task_id halted;
00062 time_t when;
00063 time_t backoff;
00064 int flush;
00065 const char* who;
00066 ldns_rdf* dname;
00067 void* zone;
00068 };
00069
00079 task_type* task_create(task_id what, time_t when, const char* who, void* zone);
00080
00088 task_type* task_recover_from_backup(const char* filename, void* zone);
00089
00096 void task_backup(FILE* fd, task_type* task);
00097
00103 void task_cleanup(task_type* task);
00104
00112 int task_compare(const void* a, const void* b);
00113
00121 char* task2str(task_type* task, char* buftask);
00122
00129 const char* task_what2str(int taskid);
00130
00136 const char* task_who2str(const char* who);
00137
00144 void task_print(FILE* out, task_type* task);
00145
00151 void task_log(task_type* task);
00152
00153 #endif