server io nio ByteBuffer nio channels SelectionKey nio channels Selector nio channels spi SelectorProvider HashSet concurrent atomic AtomicLong TByteArrayOutputStream TException protocol TProtocol transport TFramedTransport transport TIOStreamTransport transport TMemoryInputTransport transport TNonblockingServerTransport transport TNonblockingTransport transport TTransport transport TTransportException slf4j Logger slf4j LoggerFactory abstractnonblockingserver tserver logger logger loggerfactory.getlogger abstractnonblockingserverargs t abstractnonblockingserverargs t abstractserverargs t maxreadbufferbytes long.max_value abstractnonblockingserverargs tnonblockingservertransport transport transport transportfactory tframedtransport.factory max_read_buffer_bytes atomiclong readbufferbytesallocated atomiclong abstractnonblockingserver abstractnonblockingserverargs max_read_buffer_bytes args.maxreadbufferbytes serve startthreads startlistening setserving waitforshutdown setserving stoplistening startthreads waitforshutdown startlistening servertransport_.listen ttransportexception ttx logger.error ttx stoplistening servertransport_.close requestinvoke framebuffer framebuffer abstractselectthread selector selector framebuffer selectinterestchanges hashset framebuffer abstractselectthread this.selector selectorprovider.provider openselector wakeupselector selector.wakeup requestselectinterestchange framebuffer framebuffer selectinterestchanges selectinterestchanges.add framebuffer selector.wakeup processinterestchanges selectinterestchanges framebuffer fb selectinterestchanges fb.changeselectinterests selectinterestchanges.clear handleread selectionkey key framebuffer buffer framebuffer key.attachment buffer.read cleanupselectionkey key buffer.isframefullyread requestinvoke buffer cleanupselectionkey key handlewrite selectionkey key framebuffer buffer framebuffer key.attachment buffer.write cleanupselectionkey key cleanupselectionkey selectionkey key framebuffer buffer framebuffer key.attachment buffer buffer.close key.cancel framebufferstate reading_frame_size reading_frame read_frame_complete awaiting_register_write writing awaiting_register_read awaiting_close framebuffer tnonblockingtransport trans_ selectionkey selectionkey_ abstractselectthread selectthread_ framebufferstate framebufferstate.reading_frame_size bytebuffer buffer_ tbytearrayoutputstream response_ framebuffer tnonblockingtransport trans selectionkey selectionkey abstractselectthread selectthread trans_ trans selectionkey_ selectionkey selectthread_ selectthread buffer_ bytebuffer.allocate read framebufferstate.reading_frame_size internalread buffer_.remaining framesize buffer_.getint framesize logger.error framesize framesize max_read_buffer_bytes logger.error framesize readbufferbytesallocated.get framesize max_read_buffer_bytes readbufferbytesallocated.addandget framesize buffer_ bytebuffer.allocate framesize framebufferstate.reading_frame framebufferstate.reading_frame internalread buffer_.remaining selectionkey_.interestops framebufferstate.read_frame_complete logger.error write framebufferstate.writing trans_.write buffer_ logger.warn buffer_.remaining prepareread logger.error changeselectinterests framebufferstate.awaiting_register_write selectionkey_.interestops selectionkey.op_write framebufferstate.writing framebufferstate.awaiting_register_read prepareread framebufferstate.awaiting_close close selectionkey_.cancel logger.error close framebufferstate.reading_frame framebufferstate.read_frame_complete readbufferbytesallocated.addandget buffer_.array length trans_.close isframefullyread framebufferstate.read_frame_complete responseready readbufferbytesallocated.addandget buffer_.array length response_.len framebufferstate.awaiting_register_read buffer_ buffer_ bytebuffer.wrap response_.get response_.len framebufferstate.awaiting_register_write requestselectinterestchange invoke ttransport intrans getinputtransport tprotocol inprot inputprotocolfactory_.getprotocol intrans tprotocol outprot outputprotocolfactory_.getprotocol getoutputtransport processorfactory_.getprocessor intrans process inprot outprot responseready texception te logger.warn te logger.error framebufferstate.awaiting_close requestselectinterestchange ttransport getinputtransport tmemoryinputtransport buffer_.array ttransport getoutputtransport response_ tbytearrayoutputstream outputtransportfactory_.gettransport tiostreamtransport response_ internalread trans_.read buffer_ logger.warn prepareread selectionkey_.interestops selectionkey.op_read buffer_ bytebuffer.allocate framebufferstate.reading_frame_size requestselectinterestchange this.selectthread_ changeselectinterests this.selectthread_.requestselectinterestchange