X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=job.c;h=87bcd289d98eafc8185fcbc2f194172eb431acf2;hp=689908aeb4c6c4c03778a598d153d3d52ae05339;hb=a66d02c3290008d50b2b52f84cfbf46a546ba831;hpb=87d1515de5ae611e95144def9ef4b2c0c933f6fe diff --git a/job.c b/job.c index 689908aeb..87bcd289d 100644 --- a/job.c +++ b/job.c @@ -60,3 +60,31 @@ void job_free(Job *j) { /* Free data and next 'smaller' objects */ free(j); } + +void job_dump(Job *j, FILE*f) { + + static const char* const job_type_table[_JOB_TYPE_MAX] = { + [JOB_START] = "START", + [JOB_STOP] = "STOP", + [JOB_VERIFY_STARTED] = "VERIFY_STARTED", + [JOB_RELOAD] = "RELOAD", + [JOB_RESTART] = "RESTART", + [JOB_TRY_RESTART] = "TRY_RESTART", + [JOB_RESTART_FINISH] = "RESTART_FINISH" + }; + + static const char* const job_state_table[_JOB_STATE_MAX] = { + [JOB_WAITING] = "WAITING", + [JOB_RUNNING] = "RUNNING", + [JOB_DONE] = "DONE" + }; + + assert(j); + assert(f); + + fprintf(f, "Job %u: %s → %s in state %s\n", + j->id, + name_id(j->name), + job_type_table[j->type], + job_state_table[j->state]); +}