public class XmppStreamProcessor extends Object implements ByteHoldingProcessor
XmppStreamProcessor is an implementation of
InputStreamProcessor capable of processing XMPP stream. Typically
Stringflow processes a multiplexed stream (extended XMPP stream) which should
It is important to note that processing of multiplexed stream is little more performance intensive than a pure XMPP stream.
| Modifier and Type | Field and Description |
|---|---|
protected ByteSource |
networkData |
protected PacketHandler<XMPPPacket> |
packetHandler |
protected PacketReceiver<XMPPPacket> |
packetReceiver |
protected XMPPByteProcessor |
xmppProcessor |
| Modifier | Constructor and Description |
|---|---|
protected |
XmppStreamProcessor() |
|
XmppStreamProcessor(PacketHandler<XMPPPacket> packetHandler) |
|
XmppStreamProcessor(PacketHandler<XMPPPacket> packetHandler,
StreamContext ctx,
PacketReceiver<XMPPPacket> receiver) |
| Modifier and Type | Method and Description |
|---|---|
void |
flushBytePipeline()
Flushes partial bytes maintained by this stream processor
|
byte[] |
getBytePipeline()
Returns bytes which were left unprocessed in previous run.
|
boolean |
hasBytePipeline()
Returns true if this stream processor has unprocessed bytes.
|
void |
process(byte[] data)
Processes byte stream and generates xmpp stanza packets
|
void |
process(byte[] data,
int offset,
int length)
Processes byte stream and generates xmpp stanza packets
|
protected XMPPByteProcessor xmppProcessor
protected PacketHandler<XMPPPacket> packetHandler
protected PacketReceiver<XMPPPacket> packetReceiver
protected ByteSource networkData
protected XmppStreamProcessor()
public XmppStreamProcessor(PacketHandler<XMPPPacket> packetHandler)
public XmppStreamProcessor(PacketHandler<XMPPPacket> packetHandler, StreamContext ctx, PacketReceiver<XMPPPacket> receiver)
public void process(byte[] data)
throws Exception
InputStreamProcessorprocess in interface InputStreamProcessordata - byte dataException - exceptionpublic void process(byte[] data,
int offset,
int length)
throws Exception
InputStreamProcessorprocess in interface InputStreamProcessordata - dataoffset - offsetlength - lengthException - exceptionpublic boolean hasBytePipeline()
ByteHoldingProcessor
Partial bytes are stored by stream processor and XMPPPacketReader
takes these bytes and appends these bytes before incoming bytes.We can
possibly do this append operation in stream processor where it belongs
naturally, but it would involve a massive array copy operation.
hasBytePipeline in interface ByteHoldingProcessorpublic byte[] getBytePipeline()
ByteHoldingProcessorgetBytePipeline in interface ByteHoldingProcessorpublic void flushBytePipeline()
ByteHoldingProcessorflushBytePipeline in interface ByteHoldingProcessorCopyright © 2019. All rights reserved.