2023-05-05 13:41:31 +02:00
|
|
|
@0xd53fadcd6c8f437f;
|
|
|
|
|
|
|
|
using Common = import "common.capnp";
|
2023-05-05 14:14:33 +02:00
|
|
|
using Stream = import "streaming.capnp";
|
2023-05-05 13:41:31 +02:00
|
|
|
using Tasks = import "tasks.capnp";
|
|
|
|
using Resources = import "resources.capnp";
|
|
|
|
using AsyncOps = import "async_ops.capnp";
|
|
|
|
|
|
|
|
interface Instrument {
|
|
|
|
watchUpdates @0 (request :InstrumentRequest, receiver :Stream.Receiver(Update)) -> (stream :Stream.Sender);
|
|
|
|
watchTaskDetails @1 (request :TaskDetailsRequest, receiver :Stream.Receiver(Tasks.TaskDetails)) -> (stream :Stream.Sender);
|
|
|
|
pause @2 PauseRequest -> PauseResponse;
|
|
|
|
resume @3 ResumeRequest -> ResumeResponse;
|
|
|
|
}
|
|
|
|
|
|
|
|
struct InstrumentRequest {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
struct Update {
|
|
|
|
now @0 :Common.Timestamp;
|
|
|
|
|
|
|
|
taskUpdate @1 :Tasks.Update;
|
|
|
|
|
|
|
|
resourceUpdate @2 :Resources.Update;
|
|
|
|
|
|
|
|
asyncOpUpdate @3 :AsyncOps.Update;
|
|
|
|
|
|
|
|
newMetadata @4 :Common.RegisterMetadata;
|
|
|
|
}
|
|
|
|
|
|
|
|
struct TaskDetailsRequest {
|
|
|
|
id @0 :Common.Id;
|
|
|
|
}
|
|
|
|
|
|
|
|
struct PauseRequest {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
struct PauseResponse {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
struct ResumeRequest {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
struct ResumeResponse {
|
|
|
|
|
|
|
|
}
|