| // 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. |
| @available(added=7) |
| library fuchsia.migration; |
| using fuchsia.io; |
| |
| type MigrationStatus = strict enum { |
| UNKNOWN = 1; |
| IN_PROGRESS = 2; |
| COMPLETE = 3; |
| ENCOUNTERED_ERROR = 4; |
| }; |
| |
| /// Table for state of migration operations. |
| type MigrationState = table { |
| 1: status MigrationStatus; |
| 2: progress_percentage uint8; |
| }; |
| |
| protocol Provider { |
| Get(resource struct { |
| dir server_end:fuchsia.io.Directory; |
| }); |
| Processed(); |
| }; |
| |
| @discoverable |
| protocol CastProvider { |
| compose Provider; |
| }; |
| |
| @discoverable |
| protocol DisplayProvider { |
| compose Provider; |
| }; |
| |
| @discoverable |
| protocol KronkProvider { |
| compose Provider; |
| }; |
| |
| @discoverable |
| protocol UltrasoundProvider { |
| compose Provider; |
| }; |
| |
| @discoverable |
| protocol ProductPolicyProvider { |
| compose Provider; |
| }; |
| |
| /// Protocol to watch for changes when a migration of system data is started. |
| @discoverable |
| protocol State { |
| /// Hanging get. Will return immediatedly on first call per connection |
| /// and then on change after that. |
| Watch() -> (struct { |
| state MigrationState; |
| }); |
| }; |