proxygen
|
#include <Observable.h>
Classes | |
class | Unsubscriber |
Public Member Functions | |
Observable () | |
Observable (Observable &&other)=delete | |
virtual | ~Observable () |
virtual Subscription< T > | subscribe (ObserverPtr< T > observer) |
virtual void | observe (ObserverPtr< T > observer) |
virtual void | observe (Observer< T > *observer) |
ObservablePtr< T > | observeOn (SchedulerPtr scheduler) |
std::unique_ptr< Observable > | subscribeOn (SchedulerPtr scheduler) |
Protected Member Functions | |
template<class F > | |
void | forEachObserver (F f) |
Private Types | |
typedef folly::small_vector< Observer< T > *, InlineObservers > | ObserverList |
typedef std::map< uint64_t, ObserverPtr< T > > | SubscriberMap |
Private Member Functions | |
Subscription< T > | subscribeImpl (ObserverPtr< T > observer, bool indefinite) |
void | unsubscribe (uint64_t id) |
Subscription< T > | makeSubscription (bool indefinite) |
Private Attributes | |
std::shared_ptr< Unsubscriber > | unsubscriber_ {nullptr} |
folly::MicroSpinLock | unsubscriberLock_ {0} |
std::atomic< uint64_t > | nextSubscriptionId_ |
folly::SharedMutex | observersLock_ |
folly::ThreadLocalPtr< bool > | inCallback_ |
ObserverList | observers_ |
folly::ThreadLocalPtr< ObserverList > | newObservers_ |
SubscriberMap | subscribers_ |
folly::ThreadLocalPtr< SubscriberMap > | newSubscribers_ |
folly::ThreadLocalPtr< std::vector< uint64_t > > | oldSubscribers_ |
Friends | |
class | Subscription< T > |
Definition at line 35 of file Observable.h.
|
private |
Definition at line 275 of file Observable.h.
|
private |
Definition at line 279 of file Observable.h.
|
inline |
Definition at line 37 of file Observable.h.
Referenced by wangle::Observable< T >::Observable().
|
delete |
|
inlinevirtual |
Definition at line 42 of file Observable.h.
|
inlineprotected |
Definition at line 147 of file Observable.h.
|
inlineprivate |
Definition at line 257 of file Observable.h.
Referenced by wangle::Observable< T >::subscribeImpl().
|
inlinevirtual |
Definition at line 68 of file Observable.h.
|
inlinevirtual |
Definition at line 72 of file Observable.h.
|
inline |
Returns a new Observable that will call back on the given Scheduler. The returned Observable must outlive the parent Observable.
Definition at line 93 of file Observable.h.
|
inlinevirtual |
Definition at line 64 of file Observable.h.
Referenced by wangle::Observable< T >::observeOn(), and wangle::Observable< T >::subscribeOn().
|
inlineprivate |
Definition at line 194 of file Observable.h.
Referenced by wangle::Observable< T >::observe(), and wangle::Observable< T >::subscribe().
|
inline |
Returns a new Observable that will subscribe to this parent Observable via the given Scheduler. This can be subtle and confusing at first, see http://www.introtorx.com/Content/v1.0.10621.0/15_SchedulingAndThreading.html#SubscribeOnObserveOn
Definition at line 122 of file Observable.h.
|
inlineprivate |
Definition at line 238 of file Observable.h.
|
friend |
Definition at line 236 of file Observable.h.
|
private |
Definition at line 273 of file Observable.h.
Referenced by wangle::Observable< T >::forEachObserver(), wangle::Observable< T >::observe(), wangle::Observable< T >::subscribeImpl(), and wangle::Observable< T >::unsubscribe().
|
private |
Definition at line 277 of file Observable.h.
Referenced by wangle::Observable< T >::forEachObserver(), and wangle::Observable< T >::observe().
|
private |
Definition at line 281 of file Observable.h.
Referenced by wangle::Observable< T >::forEachObserver(), wangle::Observable< T >::subscribeImpl(), and wangle::Observable< T >::unsubscribe().
|
private |
Definition at line 271 of file Observable.h.
Referenced by wangle::Observable< T >::makeSubscription().
|
private |
Definition at line 276 of file Observable.h.
Referenced by wangle::Observable< T >::forEachObserver(), and wangle::Observable< T >::observe().
|
private |
Definition at line 272 of file Observable.h.
Referenced by wangle::Observable< T >::forEachObserver(), wangle::Observable< T >::observe(), wangle::Observable< T >::subscribeImpl(), and wangle::Observable< T >::unsubscribe().
|
private |
Definition at line 282 of file Observable.h.
Referenced by wangle::Observable< T >::forEachObserver(), and wangle::Observable< T >::unsubscribe().
|
private |
Definition at line 280 of file Observable.h.
Referenced by wangle::Observable< T >::forEachObserver(), wangle::Observable< T >::subscribeImpl(), and wangle::Observable< T >::unsubscribe().
|
private |
Definition at line 233 of file Observable.h.
Referenced by wangle::Observable< T >::makeSubscription(), and wangle::Observable< T >::~Observable().
|
private |
Definition at line 234 of file Observable.h.
Referenced by wangle::Observable< T >::makeSubscription().