blob: 33ecb2a54ce8f38828b4bc675022f4c4dc0968cd [file] [log] [blame]
// 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;
});
};