@Override public void flush(ChannelHandlerContext ctx) throws Exception { trace("\n"); flushTrace(); if (requiresFlush) { super.flush(ctx); requiresFlush = false; } }
if (authenticated) { super.write(ctx, msg, promise); super.flush(ctx); } else if (msg instanceof BookkeeperProtocol.Request) { || req.getHeader().getOperation() == BookkeeperProtocol.OperationType.START_TLS) { super.write(ctx, msg, promise); super.flush(ctx); } else { waitingForAuth.add(msg); if (BookieProtocol.AUTH == req.getOpCode()) { super.write(ctx, msg, promise); super.flush(ctx); } else { waitingForAuth.add(msg);
/** * @param ctx * @param queue */ public void flush(ChannelHandlerContext ctx, AutoFlushWriterChannelQueue queue) { if (queue == null) return; MessageEvent[] events = queue.get(); if (events == null) return; ByteBuf[] msgs = new ByteBuf[events.length]; for (int j=0; j < events.length; j++) { msgs[j] = (ByteBuf) events[j].getMsg(); } try { ByteBuf composite = Unpooled.wrappedBuffer(msgs); ChannelPromise promise = new ExtendedChannelPromise(ctx.channel()); promise.addListener(new AutoFlushWriterChannelListener(events)); queue.setLastFlushTime(System.currentTimeMillis()); super.write(ctx, composite, promise); super.flush(ctx); } catch (Throwable t) { LOGGER.error( "Error while Flushing : " + Arrays.toString(t.getStackTrace())); } }