| // Copyright 2016 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef IOS_CHROME_BROWSER_UI_SETTINGS_UTILS_OBSERVABLE_BOOLEAN_H_ |
| #define IOS_CHROME_BROWSER_UI_SETTINGS_UTILS_OBSERVABLE_BOOLEAN_H_ |
| |
| #import <Foundation/Foundation.h> |
| |
| @protocol BooleanObserver; |
| |
| // Describes the trait an observable boolean has. |
| @protocol ObservableBoolean<NSObject> |
| |
| // The value of this observable boolean. |
| @property(nonatomic, assign) BOOL value; |
| |
| // The observer subscribing to this observable boolean's changes notifications. |
| @property(nonatomic, weak) id<BooleanObserver> observer; |
| |
| @end |
| |
| // Observer protocol for boolean changes. |
| @protocol BooleanObserver |
| |
| // Called when the boolean changes. Note that all classes conforming to this |
| // protocol might send this callback even when the value is reset to the same |
| // value. This is the case for ContentSettingBackedBoolean for example. |
| - (void)booleanDidChange:(id<ObservableBoolean>)observableBoolean; |
| |
| @end |
| |
| #endif // IOS_CHROME_BROWSER_UI_SETTINGS_UTILS_OBSERVABLE_BOOLEAN_H_ |