| // Copyright 2017 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.devicesettings; |
| |
| type Status = strict enum : uint8 { |
| ok = 1; |
| errNotSet = 2; |
| errInvalidSetting = 3; |
| errRead = 4; |
| errIncorrectType = 5; |
| errUnknown = 6; |
| }; |
| |
| type ValueType = strict enum : uint8 { |
| number = 1; |
| text = 2; |
| }; |
| |
| /// Manager interface used to manage settings |
| @discoverable |
| protocol DeviceSettingsManager { |
| GetInteger(struct { |
| key string; |
| }) -> (struct { |
| val int64; |
| s Status; |
| }); |
| |
| GetString(struct { |
| key string; |
| }) -> (struct { |
| val string; |
| s Status; |
| }); |
| |
| /// Returns false on database error and true on success. |
| SetInteger(struct { |
| key string; |
| val int64; |
| }) -> (struct { |
| result bool; |
| }); |
| |
| /// Returns false on database error and true on success. |
| SetString(struct { |
| key string; |
| val string; |
| }) -> (struct { |
| result bool; |
| }); |
| |
| /// Register a watcher to be called when a setting changes |
| /// Returns Status::ok, Status::errInvalidSetting or Status::errUnknown |
| Watch(resource struct { |
| key string; |
| watcher client_end:DeviceSettingsWatcher; |
| }) -> (struct { |
| s Status; |
| }); |
| }; |
| |
| /// A watcher for device settings changes |
| protocol DeviceSettingsWatcher { |
| OnChangeSettings(struct { |
| type ValueType; |
| }); |
| }; |