[
https://issues.apache.org/jira/browse/THRIFT-2427?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15059542#comment-15059542
]
Nikita Dolgov edited comment on THRIFT-2427 at 12/16/15 7:07 AM:
-----------------------------------------------------------------
I have attached a patch inspired by the implementation suggested on Nov 26 but
without duplicated code.
was (Author: ndolgov):
1) I have attached a patch for the implementation suggested on Nov 26.
2) I believe it's not a good idea to copy/paste TBaseAsyncProcessor::process
into TMultiplexedAsyncProcessor though. Unfortunately TBaseAsyncProcessor is
not structured for reuse. We should probably consider extracting something like:
{code}
TBaseAsyncProcessor {
boolean doProcess(AsyncFrameBuffer fb, TProtocol in,TProtocol out)
{code}
that would enable TMultiplexedProcessor.StoredMessageProtocol-style decoration
with no TBaseAsyncProcessor code duplication in TMultiplexedAsyncProcessor.
> Add support for Multiplexed Async Processors
> --------------------------------------------
>
> Key: THRIFT-2427
> URL: https://issues.apache.org/jira/browse/THRIFT-2427
> Project: Thrift
> Issue Type: Improvement
> Components: Java - Library
> Reporter: Lior Neudorfer
> Attachments:
> THRIFT_2427_add_support_for_TMultiplexedProcessor_style_multiplexed_async_processors_compa.patch,
> TMultiplexedAsyncProcessor.java
>
>
> THRIFT-1972 added support for Asynchronous processors to be used with Non
> blocking servers. THRIFT-563 added support for multiplexed servers.
> I would like to build a Non Blocking server which runs multiple, multiplexed
> async processors. However, the current Java implementation does not allow a
> multiplexed asynchronous server:
> 1. TMultiplexedProcessor implements TProcessor, which causes
> TNonBlockingServer to create a FrameBuffer, not a AsyncFrameBuffer for it.
> 2. TMultiplexedProcessor calls the underlying processors with the
> {code:xml}process(TProtocol in, TProtocol out){code} method variant, which
> returns false in TBaseAsyncProcessor. It should, instead, be able to call the
> {code:xml}process(final AsyncFrameBuffer fb){code} variant.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)