X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=folly%2Fwangle%2Fchannel%2FHandler.h;h=127ac97314648ec462fb092ab34109e8376eebaf;hb=98a8a89d7d118b3098c0fb1308f171745b530e4b;hp=676c2fabf3783e4ee14e6d643cb3d7b8255ab672;hpb=fdd8e84bddefb7fbf07df87b9ed83d6b748c68f3;p=folly.git diff --git a/folly/wangle/channel/Handler.h b/folly/wangle/channel/Handler.h index 676c2fab..127ac973 100644 --- a/folly/wangle/channel/Handler.h +++ b/folly/wangle/channel/Handler.h @@ -26,13 +26,10 @@ namespace folly { namespace wangle { template class HandlerBase { public: - virtual ~HandlerBase() {} + virtual ~HandlerBase() = default; virtual void attachPipeline(Context* ctx) {} - virtual void attachTransport(Context* ctx) {} - virtual void detachPipeline(Context* ctx) {} - virtual void detachTransport(Context* ctx) {} Context* getContext() { if (attachCount_ != 1) { @@ -58,7 +55,7 @@ class Handler : public HandlerBase> { typedef Win win; typedef Wout wout; typedef HandlerContext Context; - virtual ~Handler() {} + virtual ~Handler() = default; virtual void read(Context* ctx, Rin msg) = 0; virtual void readEOF(Context* ctx) { @@ -67,9 +64,15 @@ class Handler : public HandlerBase> { virtual void readException(Context* ctx, exception_wrapper e) { ctx->fireReadException(std::move(e)); } + virtual void transportActive(Context* ctx) { + ctx->fireTransportActive(); + } + virtual void transportInactive(Context* ctx) { + ctx->fireTransportInactive(); + } - virtual Future write(Context* ctx, Win msg) = 0; - virtual Future close(Context* ctx) { + virtual Future write(Context* ctx, Win msg) = 0; + virtual Future close(Context* ctx) { return ctx->fireClose(); } @@ -81,28 +84,24 @@ class Handler : public HandlerBase> { exception_wrapper e) {} virtual void channelRegistered(HandlerContext* ctx) {} virtual void channelUnregistered(HandlerContext* ctx) {} - virtual void channelActive(HandlerContext* ctx) {} - virtual void channelInactive(HandlerContext* ctx) {} virtual void channelReadComplete(HandlerContext* ctx) {} virtual void userEventTriggered(HandlerContext* ctx, void* evt) {} virtual void channelWritabilityChanged(HandlerContext* ctx) {} // outbound - virtual Future bind( + virtual Future bind( HandlerContext* ctx, SocketAddress localAddress) {} - virtual Future connect( + virtual Future connect( HandlerContext* ctx, SocketAddress remoteAddress, SocketAddress localAddress) {} - virtual Future disconnect(HandlerContext* ctx) {} - virtual Future deregister(HandlerContext* ctx) {} - virtual Future read(HandlerContext* ctx) {} + virtual Future disconnect(HandlerContext* ctx) {} + virtual Future deregister(HandlerContext* ctx) {} + virtual Future read(HandlerContext* ctx) {} virtual void flush(HandlerContext* ctx) {} */ }; -struct Unit{}; - template class InboundHandler : public HandlerBase> { public: @@ -113,7 +112,7 @@ class InboundHandler : public HandlerBase> { typedef Unit win; typedef Unit wout; typedef InboundHandlerContext Context; - virtual ~InboundHandler() {} + virtual ~InboundHandler() = default; virtual void read(Context* ctx, Rin msg) = 0; virtual void readEOF(Context* ctx) { @@ -122,6 +121,12 @@ class InboundHandler : public HandlerBase> { virtual void readException(Context* ctx, exception_wrapper e) { ctx->fireReadException(std::move(e)); } + virtual void transportActive(Context* ctx) { + ctx->fireTransportActive(); + } + virtual void transportInactive(Context* ctx) { + ctx->fireTransportInactive(); + } }; template @@ -134,10 +139,10 @@ class OutboundHandler : public HandlerBase> { typedef Win win; typedef Wout wout; typedef OutboundHandlerContext Context; - virtual ~OutboundHandler() {} + virtual ~OutboundHandler() = default; - virtual Future write(Context* ctx, Win msg) = 0; - virtual Future close(Context* ctx) { + virtual Future write(Context* ctx, Win msg) = 0; + virtual Future close(Context* ctx) { return ctx->fireClose(); } }; @@ -151,7 +156,7 @@ class HandlerAdapter : public Handler { ctx->fireRead(std::forward(msg)); } - Future write(Context* ctx, W msg) override { + Future write(Context* ctx, W msg) override { return ctx->fireWrite(std::forward(msg)); } };