[ 
https://issues.apache.org/activemq/browse/AMQCPP-65?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_39001
 ] 

Timothy Bish commented on AMQCPP-65:
------------------------------------

Refactored the Transport layer a bit, creation of a transport is now done by 
the TransportBuilder class.  This class know how to wire the transports 
correctly.

Had to touch a lot of code to get all this working, will need to rerun leak 
checks etc.

> Refactor transport creation
> ---------------------------
>
>                 Key: AMQCPP-65
>                 URL: https://issues.apache.org/activemq/browse/AMQCPP-65
>             Project: ActiveMQ C++ Client
>          Issue Type: Improvement
>         Environment: NA
>            Reporter: Nathan Mittler
>         Assigned To: Nathan Mittler
>            Priority: Minor
>             Fix For: 2.1
>
>
> Currently, the chain of transports (TcpTransport, ResponseCorrelator, 
> IOTransport, etc) is wired together in the TcpTransportFactory class.  It 
> would be cleaner to have an AggregateTransportFactory that is responsible for 
> "wiring" the chain.
> The current chain of transports is as follows:
> ResponseCorrelator->TcpTransport->IOTransport
> In addition, by moving the task of wiring outside of the TcpTransportFactory, 
> we give ourselves the ability to support multiple network protocols such as 
> UDP.
> The new AggregateTransportFactory would always be used by the library, 
> regardless of the transport options provided by the user.  It would be 
> responsible for reading the options and adjusting its wiring accordingly.  A 
> list of notional parameters might include:
> transport.networkProtocol - Currently could only be "tcp".  If not provided, 
> defaults to "tcp".
> transport.useAsyncSend - If "true" an AsyncSendTransport is wired into the 
> chain.  Defaults to "false".
> transport.enableLogging  - If "true" adds a transport filter that logs the 
> data being sent/received.  Defaults to "false".
> Perhaps we could even define the order in which the transports are wired.  
> Maybe a configuration file could be read in that defines where to stick the 
> transports in the chain.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to