Package tigase.xmpp
Class XMPPIOService<RefObject>
- java.lang.Object
-
- tigase.net.IOService<RefObject>
-
- tigase.xmpp.XMPPIOService<RefObject>
-
- Type Parameters:
RefObject- is a reference object stored by this service. This is e reference to higher level data object keeping more information about the connection.
- All Implemented Interfaces:
Callable<IOService<?>>,TLSEventHandler,IOListener
- Direct Known Subclasses:
BoshIOService,C2SIOService,ComponentIOService,S2SIOService,WebSocketXMPPIOService
public class XMPPIOService<RefObject> extends IOService<RefObject>
Describe class XMPPIOService here.
Created: Tue Feb 7 07:15:02 2006- Version:
- $Rev$
- Author:
- Artur Hefczyc
-
-
Field Summary
Fields Modifier and Type Field Description static StringACK_NAMEstatic StringCROSS_DOMAIN_POLICY_FILE_PROP_KEYstatic StringCROSS_DOMAIN_POLICY_FILE_PROP_VALstatic StringDOM_HANDLERKey name of the system property for configuration protection from system overload and DOS attack.static StringID_ATTprotected SimpleParserparserprotected XMPPIOProcessor[]processorsstatic StringREQ_NAMEprotected XMPPIOServiceListenerserviceListenerstatic StringSTREAM_CLOSINGReentrantLockwriteInProgress-
Fields inherited from class tigase.net.IOService
cb, CERT_CHECK_RESULT, CERT_REQUIRED_DOMAIN, decoder, encoder, HOSTNAME_KEY, partialCharacterBytes, PORT_TYPE_PROP_KEY, SESSION_ID_KEY, SSL_PROTOCOLS_KEY
-
-
Constructor Summary
Constructors Constructor Description XMPPIOService()Creates a newXMPPIOServiceinstance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddPacketToSend(Packet packet)MethodaddPacketToSendadds new data which will be processed during next run.protected voidaddReceivedPacket(Packet packet)MethodaddReceivedPacketputs processing results to queue.IOService<?>call()booleancheckBufferLimit(int bufferSize)booleancheckData(char[] data)voidclearWaitingPackets()Clears queue of packets waiting to send.voidforceStop()longgetLastXmppPacketReceiveTime()This method returns the time when the last XMPP packet was received, it is used to help detect dead connections.longgetPacketsReceived(boolean reset)longgetPacketsSent(boolean reset)Queue<Packet>getReceivedPackets()longgetTotalPacketsReceived()longgetTotalPacketsSent()StringgetUserJid()Map<String,Packet>getWaitingForAct()Queue<Packet>getWaitingPackets()Returns queue with packets waiting to send.StringgetXMLNS()protected booleanhasParsedElements()protected voidmoveParsedPacketsToReceived(boolean sendAck)protected StringprepareStreamClose()protected voidprocessSocketData()voidprocessWaitingPackets()protected intreceivedPackets()voidsetAckMode(boolean white_char_ack, boolean xmpp_ack, boolean strict)voidsetElementLimits(int limit)voidsetIOServiceListener(XMPPIOServiceListener servList)voidsetProcessors(XMPPIOProcessor[] processors)voidsetUserJid(String jid)voidsetXMLNS(String xmlns)voidstop()StringtoString()voidwriteRawData(String data)protected voidxmppStreamClosed()voidxmppStreamOpen(String data)protected voidxmppStreamOpened(Map<String,String> attribs)-
Methods inherited from class tigase.net.IOService
accept, byteOrder, connectionType, debug, debug, getBuffOverflow, getBytesReceived, getBytesSent, getCertificateContainer, getConnectionId, getDataReceiver, getIO, getLastTransferTime, getLocalAddress, getLocalCertificate, getLocalPort, getPeerCertificate, getReadCounters, getRefObject, getRemoteAddress, getSessionData, getSocketChannel, getSocketInputSize, getStatistics, getTlsUniqueId, getTotalBuffOverflow, getTotalBytesReceived, getTotalBytesSent, getUniqueId, getWriteCounters, handleMalformedInput, handshakeCompleted, isConnected, isInputBufferEmpty, isSocketServiceReady, readBytes, readCompleted, readData, setBufferLimit, setCertificateContainer, setConnectionId, setDataReceiver, setIOServiceListener, setRefObject, setSessionData, setSocketServiceReady, setSslContextContainer, setX509TrustManagers, startSSL, startTLS, startZLib, waitingToRead, waitingToSend, waitingToSendSize, writeBytes, writeData
-
-
-
-
Field Detail
-
ACK_NAME
public static final String ACK_NAME
- See Also:
- Constant Field Values
-
CROSS_DOMAIN_POLICY_FILE_PROP_KEY
public static final String CROSS_DOMAIN_POLICY_FILE_PROP_KEY
- See Also:
- Constant Field Values
-
CROSS_DOMAIN_POLICY_FILE_PROP_VAL
public static final String CROSS_DOMAIN_POLICY_FILE_PROP_VAL
- See Also:
- Constant Field Values
-
DOM_HANDLER
public static final String DOM_HANDLER
Key name of the system property for configuration protection from system overload and DOS attack.- See Also:
- Constant Field Values
-
ID_ATT
public static final String ID_ATT
- See Also:
- Constant Field Values
-
REQ_NAME
public static final String REQ_NAME
- See Also:
- Constant Field Values
-
STREAM_CLOSING
public static final String STREAM_CLOSING
- See Also:
- Constant Field Values
-
writeInProgress
public ReentrantLock writeInProgress
-
parser
protected SimpleParser parser
-
processors
protected XMPPIOProcessor[] processors
-
serviceListener
protected XMPPIOServiceListener serviceListener
-
-
Method Detail
-
addPacketToSend
public void addPacketToSend(Packet packet)
MethodaddPacketToSendadds new data which will be processed during next run. Data are kept in proper order like in FIFO queue.- Parameters:
packet- aPacketvalue of data to process.
-
call
public IOService<?> call() throws IOException
-
checkBufferLimit
public boolean checkBufferLimit(int bufferSize)
- Specified by:
checkBufferLimitin interfaceIOListener- Overrides:
checkBufferLimitin classIOService<RefObject>
-
checkData
public boolean checkData(char[] data) throws IOException- Throws:
IOException
-
clearWaitingPackets
public void clearWaitingPackets()
Clears queue of packets waiting to send. In case of connection close this packets may be sent to offline store but some processors may want stop this from happening - for that they may use this method
-
getWaitingPackets
public Queue<Packet> getWaitingPackets()
Returns queue with packets waiting to send. For use by ConnectionManager which may need to get undelivered packets- Returns:
-
processWaitingPackets
public void processWaitingPackets() throws IOException- Specified by:
processWaitingPacketsin classIOService<RefObject>- Throws:
IOException
-
writeRawData
public void writeRawData(String data) throws IOException
- Throws:
IOException
-
xmppStreamOpen
public void xmppStreamOpen(String data)
-
getPacketsReceived
public long getPacketsReceived(boolean reset)
-
getPacketsSent
public long getPacketsSent(boolean reset)
-
getTotalPacketsReceived
public long getTotalPacketsReceived()
-
getTotalPacketsSent
public long getTotalPacketsSent()
-
getUserJid
public String getUserJid()
-
setUserJid
public void setUserJid(String jid)
-
getXMLNS
public String getXMLNS()
-
setXMLNS
public void setXMLNS(String xmlns)
-
setAckMode
public void setAckMode(boolean white_char_ack, boolean xmpp_ack, boolean strict)
-
setElementLimits
public void setElementLimits(int limit)
-
setIOServiceListener
public void setIOServiceListener(XMPPIOServiceListener servList)
-
setProcessors
public void setProcessors(XMPPIOProcessor[] processors)
-
getLastXmppPacketReceiveTime
public long getLastXmppPacketReceiveTime()
This method returns the time when the last XMPP packet was received, it is used to help detect dead connections.- Returns:
longnumber denoting time when the last XMPP packet was received.
-
addReceivedPacket
protected void addReceivedPacket(Packet packet)
MethodaddReceivedPacketputs processing results to queue. The processing results are usually data (messages) which has been just received from socket.- Parameters:
packet- aPacketvalue of processing results.
-
prepareStreamClose
protected String prepareStreamClose()
-
processSocketData
protected void processSocketData() throws IOException- Specified by:
processSocketDatain classIOService<RefObject>- Throws:
IOException
-
receivedPackets
protected int receivedPackets()
- Specified by:
receivedPacketsin classIOService<RefObject>
-
xmppStreamClosed
protected void xmppStreamClosed()
-
hasParsedElements
protected boolean hasParsedElements()
-
moveParsedPacketsToReceived
protected void moveParsedPacketsToReceived(boolean sendAck)
-
-