core: introduce io.systemd.Job interface with List, Cancel, and ClearAll methods
Co-developed-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -58,10 +58,37 @@ SD_VARLINK_DEFINE_STRUCT_TYPE(
|
||||
Job,
|
||||
VARLINK_DEFINE_JOB_FIELDS(FIELD));
|
||||
|
||||
static SD_VARLINK_DEFINE_ERROR(
|
||||
NoSuchJob,
|
||||
SD_VARLINK_DEFINE_FIELD(parameter, SD_VARLINK_STRING, SD_VARLINK_NULLABLE));
|
||||
|
||||
static SD_VARLINK_DEFINE_METHOD_FULL(
|
||||
List,
|
||||
SD_VARLINK_SUPPORTS_MORE,
|
||||
SD_VARLINK_FIELD_COMMENT("If non-null, filter by job ID"),
|
||||
SD_VARLINK_DEFINE_INPUT(id, SD_VARLINK_INT, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("If non-null, filter by unit name"),
|
||||
SD_VARLINK_DEFINE_INPUT(unit, SD_VARLINK_STRING, SD_VARLINK_NULLABLE),
|
||||
VARLINK_DEFINE_JOB_FIELDS(OUTPUT));
|
||||
|
||||
static SD_VARLINK_DEFINE_METHOD(
|
||||
Cancel,
|
||||
SD_VARLINK_FIELD_COMMENT("The job ID to cancel"),
|
||||
SD_VARLINK_DEFINE_INPUT(id, SD_VARLINK_INT, 0));
|
||||
|
||||
static SD_VARLINK_DEFINE_METHOD(
|
||||
ClearAll);
|
||||
|
||||
SD_VARLINK_DEFINE_INTERFACE(
|
||||
io_systemd_Job,
|
||||
"io.systemd.Job",
|
||||
SD_VARLINK_INTERFACE_COMMENT("Job-related types for the systemd service manager."),
|
||||
SD_VARLINK_INTERFACE_COMMENT("Job management interface for the systemd service manager."),
|
||||
SD_VARLINK_SYMBOL_COMMENT("List queued jobs"),
|
||||
&vl_method_List,
|
||||
SD_VARLINK_SYMBOL_COMMENT("Cancel a specific job"),
|
||||
&vl_method_Cancel,
|
||||
SD_VARLINK_SYMBOL_COMMENT("Cancel all pending jobs"),
|
||||
&vl_method_ClearAll,
|
||||
SD_VARLINK_SYMBOL_COMMENT("Job type"),
|
||||
&vl_type_JobType,
|
||||
SD_VARLINK_SYMBOL_COMMENT("Job state"),
|
||||
@@ -69,4 +96,6 @@ SD_VARLINK_DEFINE_INTERFACE(
|
||||
SD_VARLINK_SYMBOL_COMMENT("Job result"),
|
||||
&vl_type_JobResult,
|
||||
SD_VARLINK_SYMBOL_COMMENT("A job object"),
|
||||
&vl_type_Job);
|
||||
&vl_type_Job,
|
||||
SD_VARLINK_SYMBOL_COMMENT("The specified job does not exist"),
|
||||
&vl_error_NoSuchJob);
|
||||
|
||||
Reference in New Issue
Block a user