com.devexperts.qd.qtp
Class MessageOutputStreamWriter

java.lang.Object
  extended by com.devexperts.qd.qtp.AbstractMessageVisitor
      extended by com.devexperts.qd.qtp.MessageOutputStreamWriter
All Implemented Interfaces:
MessageListener, MessageVisitor, java.io.Closeable, java.io.Flushable

public class MessageOutputStreamWriter
extends AbstractMessageVisitor
implements MessageListener, java.io.Closeable, java.io.Flushable

Writes messages into specified output stream using specified byte array composer.


Constructor Summary
MessageOutputStreamWriter(AbstractByteArrayComposer composer, java.io.OutputStream out)
           
 
Method Summary
 void close()
           
 void flush()
           
 void messagesAvailable(MessageProvider provider)
          Notifies this listener that some messages are available in the specified QTP message provider.
 boolean visitData(DataProvider provider, MessageType message)
          This method consumes available data for data message from the given data provider.
 boolean visitOtherMessage(int messageType, byte[] messageBytes, int offset, int length)
          This implementation simply skips all unknown messages.
 boolean visitSubscription(SubscriptionProvider provider, MessageType message)
          This method consumes available subscription for subscription message from the given subscription provider.
 
Methods inherited from class com.devexperts.qd.qtp.AbstractMessageVisitor
visitDescribeProtocol, visitHistoryAddSubscription, visitHistoryData, visitHistoryRemoveSubscription, visitStreamAddSubscription, visitStreamData, visitStreamRemoveSubscription, visitTickerAddSubscription, visitTickerData, visitTickerRemoveSubscription
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MessageOutputStreamWriter

public MessageOutputStreamWriter(AbstractByteArrayComposer composer,
                                 java.io.OutputStream out)
Method Detail

visitData

public boolean visitData(DataProvider provider,
                         MessageType message)
Description copied from class: AbstractMessageVisitor
This method consumes available data for data message from the given data provider.

Specified by:
visitData in interface MessageVisitor
Specified by:
visitData in class AbstractMessageVisitor
Returns:
false if it had retrieved all available data and no data left, true if more data remains to be consumed

visitSubscription

public boolean visitSubscription(SubscriptionProvider provider,
                                 MessageType message)
Description copied from class: AbstractMessageVisitor
This method consumes available subscription for subscription message from the given subscription provider.

Specified by:
visitSubscription in interface MessageVisitor
Specified by:
visitSubscription in class AbstractMessageVisitor
Returns:
false if it had retrieved all available subscription and nothing left, true if more subscription remains to be consumed

visitOtherMessage

public boolean visitOtherMessage(int messageType,
                                 byte[] messageBytes,
                                 int offset,
                                 int length)
Description copied from class: AbstractMessageVisitor
This implementation simply skips all unknown messages.

Specified by:
visitOtherMessage in interface MessageVisitor
Overrides:
visitOtherMessage in class AbstractMessageVisitor
Parameters:
messageType - integer number representing a type of the message.
messageBytes - array containing message data.
offset - position of the first byte of message data in messageBytes array.
length - number of bytes starting from offset in messageBytes related to this message.
Returns:
true if the whole message was not processed because the visitor is full and false if the message was successfully processed.

close

public void close()
           throws java.io.IOException
Specified by:
close in interface java.io.Closeable
Throws:
java.io.IOException

flush

public void flush()
           throws java.io.IOException
Specified by:
flush in interface java.io.Flushable
Throws:
java.io.IOException

messagesAvailable

public void messagesAvailable(MessageProvider provider)
Description copied from interface: MessageListener
Notifies this listener that some messages are available in the specified QTP message provider.

Specified by:
messagesAvailable in interface MessageListener