Grassroots Infrastructure
The Grassroots Infrastructure is a suite of computing tools to help users and developers use scientific data infrastructure that can easily be interconnected.
|
Go to the documentation of this file.
28 #ifndef JOBS_MANAGER_H
29 #define JOBS_MANAGER_H
38 #ifndef DOXYGEN_SHOULD_SKIP_THIS
40 #ifdef ALLOCATE_JOBS_MANAGER_TAGS
41 #define JOBS_MANAGER_PREFIX GRASSROOTS_SERVICE_MANAGER_API
42 #define JOBS_MANAGER_VAL(x) = x
44 #define JOBS_MANAGER_PREFIX extern GRASSROOTS_SERVICE_MANAGER_API
45 #define JOBS_MANAGER_VAL(x)
75 typedef unsigned char *(*ServiceJobSerialiser) (
ServiceJob *job_p, uint32 *length_p);
88 typedef ServiceJob *(*ServiceJobDeserialiser) (
unsigned char *input_data_p,
void *config_p);
195 bool (*delete_manager_fn) (
struct JobsManager *manager_p));
struct Plugin * jm_plugin_p
The plugin that thjis JobsManager was loaded from.
Definition: jobs_manager.h:101
bool(* jm_add_job_fn)(struct JobsManager *manager_p, uuid_t job_key, ServiceJob *job_p)
Add a ServiceJob to the JobsManager.
Definition: jobs_manager.h:114
JobsManager * LoadJobsManager(const char *jobs_manager_s, struct GrassrootsServer *server_p)
Load and create a JobsManager from the named plugin.
A datatype to represent a running task.
Definition: service_job.h:72
A datatype for monitoring ServiceJobs.
Definition: jobs_manager.h:98
bool AddServiceJobToJobsManager(JobsManager *manager_p, uuid_t job_key, ServiceJob *job_p)
Add a ServiceJob to the JobsManager.
bool FreeJobsManager(JobsManager *manager_p)
Free a JobsManager.
A doubly-linked list that can be traversed in either direction.
Definition: linked_list.h:56
ServiceJob * GetServiceJobFromJobsManager(JobsManager *manager_p, const uuid_t key)
Find a ServiceJob.
A Plugin is a dynamically-loaded component to provide a piece of functionality.
Definition: plugin.h:150
Definition: grassroots_server.h:45
LinkedList * GetAllServiceJobsFromJobsManager(struct JobsManager *manager_p)
Get all ServiceJobs.
struct GrassrootsServer * GetGrassrootsServerFromJobsManager(const JobsManager *const manager_p)
ServiceJob * RemoveServiceJobFromJobsManager(JobsManager *manager_p, const uuid_t key, bool get_job_flag)
Remove a ServiceJob.
void InitJobsManager(JobsManager *manager_p, bool(*add_job_fn)(JobsManager *manager_p, uuid_t job_key, ServiceJob *job_p), ServiceJob *(*get_job_fn)(JobsManager *manager_p, const uuid_t key), ServiceJob *(*remove_job_fn)(JobsManager *manager_p, const uuid_t key, bool get_job_flag), LinkedList *(*get_all_jobs_fn)(struct JobsManager *manager_p), bool(*delete_manager_fn)(struct JobsManager *manager_p))
Initialise a JobsManager.
bool(* jm_delete_manager_fn)(struct JobsManager *manager_p)
The function to use to delete this JobsManager,.
Definition: jobs_manager.h:165
#define GRASSROOTS_SERVICE_MANAGER_API
Definition: grassroots_service_manager_library.h:46
Definition: windows_uuid.h:43