/* * Copyright (c) 2022 Egor Tensin * This file is part of the "cimple" project. * For details, see https://github.com/egor-tensin/cimple * Distributed under the MIT License. */ #ifndef __RUN_QUEUE_H__ #define __RUN_QUEUE_H__ #include #include enum run_status { RUN_STATUS_CREATED = 1, RUN_STATUS_FINISHED = 2, }; struct run; int run_new( struct run**, int id, const char* repo_url, const char* repo_rev, enum run_status, int exit_code ); void run_destroy(struct run*); int run_queued(struct run**, const char* repo_url, const char* repo_rev); int run_created(struct run**, int id, const char* repo_url, const char* repo_rev); int run_to_json(const struct run*, struct json_object**); int run_get_id(const struct run*); const char* run_get_repo_url(const struct run*); const char* run_get_repo_rev(const struct run*); void run_set_id(struct run*, int id); SIMPLEQ_HEAD(run_queue, run); void run_queue_create(struct run_queue*); void run_queue_destroy(struct run_queue*); int run_queue_to_json(const struct run_queue*, struct json_object**); int run_queue_is_empty(const struct run_queue*); void run_queue_add_first(struct run_queue*, struct run*); void run_queue_add_last(struct run_queue*, struct run*); struct run* run_queue_remove_first(struct run_queue*); #endif