server io nio ByteBuffer nio channels SelectionKey nio channels Selector nio channels spi SelectorProvider HashSet TByteArrayOutputStream TException protocol TProtocol transport TFramedTransport transport TIOStreamTransport transport TMemoryInputTransport transport TNonblockingServerTransport transport TNonblockingTransport transport TTransport transport TTransportException slf4j Logger slf4j LoggerFactory tnonblockingserver tserver logger logger loggerfactory.getlogger tnonblockingserver.class.getname args abstractnonblockingserverargs args args tnonblockingservertransport transport transport abstractnonblockingserverargs t abstractnonblockingserverargs t abstractserverargs t maxreadbufferbytes long.max_value abstractnonblockingserverargs tnonblockingservertransport transport transport transportfactory tframedtransport.factory stopped_ selectthread selectthread_ max_read_buffer_bytes readbufferbytesallocated tnonblockingserver abstractnonblockingserverargs max_read_buffer_bytes args.maxreadbufferbytes serve startlistening startselectorthread setserving joinselector setserving stoplistening startlistening servertransport_.listen ttransportexception ttx logger.error ttx stoplistening servertransport_.close startselectorthread selectthread_ selectthread tnonblockingservertransport servertransport_ stopped_ selectthread_.start logger.error joinselector selectthread_.join interruptedexception stop stopped_ selectthread_ selectthread_.wakeupselector requestinvoke framebuffer framebuffer framebuffer.invoke requestselectinterestchange framebuffer framebuffer selectthread_.requestselectinterestchange framebuffer isstopped selectthread_.isstopped selectthread tnonblockingservertransport servertransport selector selector framebuffer selectinterestchanges hashset framebuffer selectthread tnonblockingservertransport servertransport this.servertransport servertransport this.selector selectorprovider.provider openselector servertransport.registerselector selector isstopped stopped_ run stopped_ select processinterestchanges logger.error stopped_ wakeupselector selector.wakeup requestselectinterestchange framebuffer framebuffer selectinterestchanges selectinterestchanges.add framebuffer selector.wakeup select selector.select selectionkey selectedkeys selector.selectedkeys iterator stopped_ selectedkeys.hasnext selectionkey key selectedkeys.next selectedkeys.remove key.isvalid cleanupselectionkey key key.isacceptable handleaccept key.isreadable handleread key key.iswritable handlewrite key logger.warn key.interestops logger.warn processinterestchanges selectinterestchanges framebuffer fb selectinterestchanges fb.changeselectinterests selectinterestchanges.clear handleaccept selectionkey clientkey tnonblockingtransport client client tnonblockingtransport servertransport.accept clientkey client.registerselector selector selectionkey.op_read framebuffer framebuffer framebuffer client clientkey clientkey.attach framebuffer ttransportexception tte logger.warn tte tte.printstacktrace clientkey cleanupselectionkey clientkey client client.close 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 framebuffer reading_frame_size reading_frame read_frame_complete awaiting_register_write writing awaiting_register_read awaiting_close tnonblockingtransport trans_ selectionkey selectionkey_ reading_frame_size bytebuffer buffer_ tbytearrayoutputstream response_ framebuffer tnonblockingtransport trans selectionkey selectionkey trans_ trans selectionkey_ selectionkey buffer_ bytebuffer.allocate read reading_frame_size internalread buffer_.remaining framesize buffer_.getint framesize logger.error framesize framesize max_read_buffer_bytes logger.error framesize readbufferbytesallocated framesize max_read_buffer_bytes readbufferbytesallocated framesize buffer_ bytebuffer.allocate framesize reading_frame reading_frame internalread buffer_.remaining selectionkey_.interestops read_frame_complete logger.error write writing trans_.write buffer_ logger.warn buffer_.remaining prepareread logger.error changeselectinterests awaiting_register_write selectionkey_.interestops selectionkey.op_write writing awaiting_register_read prepareread awaiting_close close selectionkey_.cancel logger.error close reading_frame read_frame_complete readbufferbytesallocated buffer_.array length trans_.close isframefullyread read_frame_complete responseready readbufferbytesallocated buffer_.array length response_.len awaiting_register_read buffer_ buffer_ bytebuffer.wrap response_.get response_.len 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 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 reading_frame_size requestselectinterestchange selectthread_ changeselectinterests tnonblockingserver.this.requestselectinterestchange