| // Copyright 2019 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| library fuchsia.app.agent; |
| |
| using fuchsia.app; |
| using zx; |
| |
| using TaskName = string:TASK_NAME_MAX_LENGTH; |
| |
| /// Maximum length of an agent task name. See fuchsia.app.agent.TaskInfo. |
| const uint32 TASK_NAME_MAX_LENGTH = 100; |
| |
| table TaskInfo { |
| /// A client-provided task name that can be used later to refer to this task. |
| 1: TaskName name; |
| |
| /// The condition that would cause this task to get scheduled. |
| 2: ScheduleCondition schedule_condition; |
| }; |
| |
| /// Describes the condition that needs to be met for a task to become scheduled. |
| /// This is not yet complete and will be extended or changed. |
| xunion ScheduleCondition { |
| /// Triggers when a new message arrives on the queue named by |message_queue_message|. |
| fuchsia.app.MessageQueueName message_on_message_queue; |
| |
| /// Triggers when a the message queue named by |message_queue_deleted| is deleted. |
| /// |
| /// |queue_deleted| is the token for the message queue that is to be watched. |
| /// This allows both message queue readers and writers to watch for queue |
| /// deletions. |
| fuchsia.app.MessageQueueName message_queue_deleted; |
| |
| /// Triggers the task approximately every time |repeating_timer| elapses. |
| /// Once a task with |repeating_timer| is scheduled, it will trigger at |
| /// approximately |now + repeating_timer|. |
| zx.duration repeating_timer; |
| }; |