| 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.
|
| +// 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_
|
|
|