...
AccessAO, AccessAOBuilder ¿ PQL Documentation
GenericPush and GenericPull
New Wrapper
Transport Handler
Push
To implement a Push Transport Handler (a transport handler that receives data instead of requests) an AbstractPushTransportHandler has to be extended. Only a few methods have to be implemented like the send method that transfers data to source or target of the transport, the getName method which returns the unique name of this transport handler, and the create instance method which creates a new instance of this transport handler with the given options. Further, ones has to implement the process open and process close methods. These methods are used to open or close the transport channel depending on the exchange pattern of the transport handler. There are 8 possible transport pattern based on the Message Exchange Pattern (MEP) namely they are: InOnly, RobustInOnly, InOut, InOptionalOut, OutOnly, RobustOutOnly, OutIn, and OutOptionalIn.
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
public class ExampleTransportHandler extends AbstractPushTransportHandler { /** Logger */ private Logger LOG = LoggerFactory.getLogger(ExampleTransportHandler.class); public ExampleTransportHandler() { super(); } public ExampleTransportHandler(IProtocolHandler<?> protocolHandler) { super(protocolHandler); } @Override public void send(byte[] message) throws IOException { } @Override public ITransportHandler createInstance( IProtocolHandler<?> protocolHandler, Map<String, String> options) { SpeechTransportHandler handler = new SpeechTransportHandler( protocolHandler); // Set options return handler; } @Override public String getName() { return "Example"; } @Override public void processInOpen() throws IOException { } @Override public void processOutOpen() throws IOException { } @Override public void processInClose() throws IOException { } @Override public void processOutClose() throws IOException { } @Override public ITransportExchangePattern getExchangePattern() { return ITransportExchangePattern.InOnly; } |
Pull
The implementation of a Pull Transport Handler is similar to the Push Transport Handler except the fact that ones has to implement the two methods getInputStream and getOutputStream that are used by a protocol handler the access the next data element.
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
public class ExampleTransportHandler extends AbstractPullTransportHandler { /** Logger */ private Logger LOG = LoggerFactory.getLogger(ExampleTransportHandler.class); private InputStream in; private outputStrem out; public ExampleTransportHandler() { super(); } public ExampleTransportHandler(IProtocolHandler<?> protocolHandler) { super(protocolHandler); } @Override public void send(byte[] message) throws IOException { } @Override public ITransportHandler createInstance( IProtocolHandler<?> protocolHandler, Map<String, String> options) { SpeechTransportHandler handler = new SpeechTransportHandler( protocolHandler); // Set options return handler; } @Override public String getName() { return "Example"; } @Override public void processInOpen() throws IOException { } @Override public void processOutOpen() throws IOException { } @Override public void processInClose() throws IOException { } @Override public void processOutClose() throws IOException { } @Override public InputStream getInputStream() { return in; } @Override public OutputStream getOutputStream() { return out; } @Override public ITransportExchangePattern getExchangePattern() { return ITransportExchangePattern.InOnly; } |
...