public class SequentialChannelDataChain extends AbstractDataChain
Modifier and Type | Class and Description |
---|---|
private class |
SequentialChannelDataChain.ChainCell
This class parses the raw message received over the channel and and gives
structured access to the data inside a Data Chain message, like its
length, the chain id, different flags and the payload data.
|
private class |
SequentialChannelDataChain.InvalidChainCellException |
private class |
SequentialChannelDataChain.SendOrderProtocolData |
Modifier and Type | Field and Description |
---|---|
private static int |
CHAIN_ID_LENGTH |
private static short |
FLAG_CONNECTION_ERROR |
private static short |
FLAG_FAST_RESPONSE |
private static short |
FLAG_NEW_CHAIN |
private static short |
FLAG_STREAM_CLOSED |
private static short |
FLAG_UNKNOWN_CHAIN_ID |
private java.util.Vector |
m_associatedChannels |
private boolean |
m_chainClosed |
private byte[] |
m_chainId |
private boolean |
m_firstDownstreamPacket |
private int |
m_maximumOutputBlocksize |
private java.lang.Object |
m_sendSynchronization |
HTTP, SMTP, SOCKS, TCP, UDP, UDP_OVER_TCP, UDP_OVER_UDP, VPN
Constructor and Description |
---|
SequentialChannelDataChain(IDataChannelCreator a_channelCreator,
DataChainErrorListener a_errorListener,
IntegrityErrorListener a_integrityErrorListener,
long a_chainTimeout) |
Modifier and Type | Method and Description |
---|---|
protected void |
closeDataChain() |
void |
createPacketPayload(DataChainSendOrderStructure a_order)
Creates the packet payload from the data stored in the given order.
|
int |
getOutputBlockSize()
Returns a value that indicates the current optimum size of data to write.
|
protected void |
orderPacket(DataChainSendOrderStructure a_order) |
private void |
orderPacketInternal(DataChainSendOrderStructure a_order,
boolean a_sendUpstreamClose,
boolean a_enforceFastResponse) |
protected void |
outputStreamClosed() |
void |
run() |
addInputStreamQueueEntry, close, createDataChannel, getInputStream, getMessageQueuesNotificationsList, getOutputStream, interruptDownstreamThread, isClosed, propagateConnectionError, propagateIntegrityError, update
private static final int CHAIN_ID_LENGTH
private static final short FLAG_UNKNOWN_CHAIN_ID
private static final short FLAG_CONNECTION_ERROR
private static final short FLAG_NEW_CHAIN
private static final short FLAG_FAST_RESPONSE
private static final short FLAG_STREAM_CLOSED
private java.util.Vector m_associatedChannels
private boolean m_firstDownstreamPacket
private volatile byte[] m_chainId
private int m_maximumOutputBlocksize
private java.lang.Object m_sendSynchronization
private volatile boolean m_chainClosed
public SequentialChannelDataChain(IDataChannelCreator a_channelCreator, DataChainErrorListener a_errorListener, IntegrityErrorListener a_integrityErrorListener, long a_chainTimeout)
public int getOutputBlockSize()
AnonChannel
getOutputBlockSize
in interface AnonChannel
getOutputBlockSize
in class AbstractDataChain
public void createPacketPayload(DataChainSendOrderStructure a_order)
AbstractDataChain
The processed data will be stored in the channel cell of the order.
createPacketPayload
in class AbstractDataChain
public void run()
run
in interface java.lang.Runnable
run
in class AbstractDataChain
protected void orderPacket(DataChainSendOrderStructure a_order)
orderPacket
in class AbstractDataChain
private void orderPacketInternal(DataChainSendOrderStructure a_order, boolean a_sendUpstreamClose, boolean a_enforceFastResponse)
protected void outputStreamClosed() throws java.io.IOException
outputStreamClosed
in class AbstractDataChain
java.io.IOException
protected void closeDataChain()
closeDataChain
in class AbstractDataChain
Copyright © 2023. All rights reserved.