Chromium Code Reviews| Index: base/ios/crb_protocol_observers.h |
| diff --git a/base/ios/crb_protocol_observers.h b/base/ios/crb_protocol_observers.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..15d16569ff84660365dceaf4088e2b8c9ecfda34 |
| --- /dev/null |
| +++ b/base/ios/crb_protocol_observers.h |
| @@ -0,0 +1,36 @@ |
| +// Copyright 2014 The Chromium Authors. All rights reserved. |
|
Mark Mentovai
2015/02/10 23:21:24
2015
stuartmorgan
2015/02/11 08:13:02
We're upstreaming existing files; I thought we wer
|
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef BASE_IOS_CRB_PROTOCOL_OBSERVERS_H_ |
| +#define BASE_IOS_CRB_PROTOCOL_OBSERVERS_H_ |
| + |
| +#import <Foundation/Foundation.h> |
| + |
| +typedef void (^ExecutionWithObserverBlock)(id); |
| + |
| +// Implements a container for observers that implement a specific Objective-C |
| +// protocol. The container forwards method invocations to its contained |
| +// observers, so that sending a message to all the observers is as simple as |
| +// sending the message to the container. |
| +@interface CRBProtocolObservers : NSObject |
| + |
| +// The Objective-C protocol that the observers in this container conform to. |
| +@property(nonatomic, readonly) Protocol* protocol; |
| + |
| +// Returns a CRBProtocolObservers container for observers that conform to |
| +// |protocol|. |
| ++ (CRBProtocolObservers*)observersWithProtocol:(Protocol*)protocol; |
| + |
| +// Adds |observer| to this container. |
| +- (void)addObserver:(id)observer; |
| + |
| +// Remove |observer| from this container. |
| +- (void)removeObserver:(id)observer; |
| + |
| +// Executes callback on every observer. |callback| cannot be nil. |
| +- (void)executeOnObservers:(ExecutionWithObserverBlock)callback; |
| + |
| +@end |
| + |
| +#endif // BASE_IOS_CRB_PROTOCOL_OBSERVERS_H_ |