|
| ObservingHandler (const R &routingData, BroadcastPool< T, R, P > *broadcastPool) |
|
| ~ObservingHandler () override |
|
| ObservingHandler (const ObservingHandler &)=delete |
|
ObservingHandler & | operator= (const ObservingHandler &)=delete |
|
| ObservingHandler (ObservingHandler &&)=default |
|
ObservingHandler & | operator= (ObservingHandler &&)=default |
|
void | transportActive (Context *ctx) override |
|
void | readEOF (Context *ctx) override |
|
void | readException (Context *ctx, folly::exception_wrapper ex) override |
|
void | onNext (const T &buf) override |
|
void | onError (folly::exception_wrapper ex) override |
|
void | onCompleted () override |
|
R & | routingData () override |
|
Public Member Functions inherited from wangle::HandlerAdapter< folly::IOBufQueue &, T > |
void | read (Context *ctx, folly::IOBufQueue &msg) override |
|
folly::Future< folly::Unit > | write (Context *ctx, Tmsg) override |
|
Public Member Functions inherited from wangle::Handler< folly::IOBufQueue &, folly::IOBufQueue &, T, T > |
| ~Handler () override=default |
|
virtual void | readEOF (Context *ctx) |
|
virtual void | readException (Context *ctx, folly::exception_wrapper e) |
|
virtual void | transportActive (Context *ctx) |
|
virtual void | transportInactive (Context *ctx) |
|
virtual folly::Future< folly::Unit > | writeException (Context *ctx, folly::exception_wrapper e) |
|
virtual folly::Future< folly::Unit > | close (Context *ctx) |
|
Public Member Functions inherited from wangle::HandlerBase< HandlerContext< folly::IOBufQueue &, T > > |
virtual | ~HandlerBase ()=default |
|
virtual void | attachPipeline (HandlerContext< folly::IOBufQueue &, T > *) |
|
virtual void | detachPipeline (HandlerContext< folly::IOBufQueue &, T > *) |
|
HandlerContext< folly::IOBufQueue &, T > * | getContext () |
|
virtual | ~Subscriber () |
|
template<typename T, typename R, typename P = DefaultPipeline>
class wangle::ObservingHandler< T, R, P >
A Handler-Observer adaptor that can be used for subscribing to broadcasts. Maintains a thread-local BroadcastPool from which a BroadcastHandler is obtained and subscribed to based on the given routing data.
Definition at line 31 of file ObservingHandler.h.
template<typename T , typename R , typename P >
Definition at line 40 of file ObservingHandler-inl.h.
References wangle::ObservingHandler< T, R, P >::broadcastHandler_, wangle::ObservingHandler< T, R, P >::broadcastPool_, wangle::Handler< folly::IOBufQueue &, folly::IOBufQueue &, T, T >::close(), wangle::ObservingHandler< T, R, P >::deleted_, wangle::ObservingHandler< T, R, P >::onError(), wangle::ObservingHandler< T, R, P >::routingData_, and wangle::ObservingHandler< T, R, P >::subscriptionId_.
48 auto pipeline =
dynamic_cast<ObservingPipeline<T>*
>(ctx->getPipeline());
50 pipeline->transportInactive();
55 [
this, pipeline, deleted](BroadcastHandler<T, R>* broadcastHandler) {
62 VLOG(10) <<
"Subscribed to a broadcast";
65 pipeline->transportActive();
67 .
onError([
this, ctx, deleted](
const std::exception& ex) {
72 LOG(ERROR) <<
"Error subscribing to a broadcast: " << ex.what();
std::shared_ptr< bool > deleted_
BroadcastHandler< T, R > * broadcastHandler_
void onError(folly::exception_wrapper ex) override
BroadcastPool< T, R, P > * broadcastPool_
virtual folly::Future< folly::Unit > close(Context *ctx)