38 lines
1.1 KiB
Objective-C
38 lines
1.1 KiB
Objective-C
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
#ifndef OBJECTIVE_C_SRC_OBSERVER_H_
|
|
#define OBJECTIVE_C_SRC_OBSERVER_H_
|
|
|
|
#import <Foundation/NSObject.h>
|
|
#import <Foundation/NSKeyValueObserving.h>
|
|
|
|
/**
|
|
* Protocol for observing changes to values of objects.
|
|
*/
|
|
@protocol Observer<NSObject>
|
|
@required
|
|
- (void)observeValueForKeyPath:(NSString *)keyPath
|
|
ofObject:(id)object
|
|
change:(NSDictionary<NSKeyValueChangeKey, id> *)change
|
|
context:(void *)context;
|
|
@end
|
|
|
|
/**
|
|
* Represents a single KVO observation. Each observation creates a new
|
|
* DOBJCObservation, even for the same observer, observed object, and keyPath.
|
|
*/
|
|
@interface DOBJCObservation : NSObject
|
|
- (instancetype)initForKeyPath:(NSString*)keyPath
|
|
ofObject:(id)object
|
|
withObserver:(id<Observer>)observer
|
|
options:(NSKeyValueObservingOptions) options
|
|
context:(void *)context;
|
|
- (void)remove;
|
|
- (void)dealloc;
|
|
- (void*)debugObserver;
|
|
@end
|
|
|
|
#endif // OBJECTIVE_C_SRC_OBSERVER_H_
|