From 6091827530d6dd43479d6709fb6e9f745c11e900 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 18 Nov 2009 00:42:52 +0100 Subject: initial commit --- manager.h | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 manager.h (limited to 'manager.h') diff --git a/manager.h b/manager.h new file mode 100644 index 0000000000..53cacdfb2e --- /dev/null +++ b/manager.h @@ -0,0 +1,41 @@ +/*-*- Mode: C; c-basic-offset: 8 -*-*/ + +#ifndef foomanagerhfoo +#define foomanagerhfoo + +#include +#include + +typedef struct Manager Manager; + +#include "name.h" +#include "job.h" +#include "hashmap.h" +#include "list.h" +#include "set.h" + +struct Manager { + uint32_t current_job_id; + + /* Active jobs and names */ + Hashmap *names; /* name string => Name object n:1 */ + Hashmap *jobs; /* job id => Job object 1:1 */ + + /* Names that need to be loaded */ + LIST_HEAD(Meta, load_queue); /* this is actually more a stack than a queue, but uh. */ + + /* Jobs to be added resp. removed. */ + Hashmap *jobs_to_add; /* Name object => Job object 1:1 */ + Set *jobs_to_remove; +}; + +Manager* manager_new(void); +void manager_free(Manager *m); + +Job *manager_get_job(Manager *m, uint32_t id); +Name *manager_get_name(Manager *m, const char *name); + +int manager_load_name(Manager *m, const char *name, Name **_ret); +int manager_add_job(Manager *m, JobType job, Name *name, JobMode mode, Job **_ret); + +#endif -- cgit v1.2.3-54-g00ecf