blob: fd402f1b8afabebabad0efcd467b73d68afab463 [file] [log] [blame]
// Copyright 2018 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.
#pragma once
#include <string>
namespace zxdb {
class SettingStore;
// Interface for listening to changes to a particular SettingStore.
// The main use case for this is to listen to the System settings for some
// changes (eg. the BuildIDIndex needs to know when a new path has been added
// in order to index it).
//
// Note that an observer listens for a particular setting:
//
// store.AddObserver(settings::kSomeSetting, this);
class SettingStoreObserver {
public:
// The store is given because an observer could be listening to two stores at
// the same time. It's the observer's job to correctly identify the setting
// and call the correct getter/setter functions.
virtual void OnSettingChanged(const SettingStore&,
const std::string& setting_name) = 0;
};
} // namespace zxdb