diff options
Diffstat (limited to 'src/com/isode/stroke/streammanagement/StanzaAckResponder.java')
-rw-r--r-- | src/com/isode/stroke/streammanagement/StanzaAckResponder.java | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/com/isode/stroke/streammanagement/StanzaAckResponder.java b/src/com/isode/stroke/streammanagement/StanzaAckResponder.java new file mode 100644 index 0000000..e0de87a --- /dev/null +++ b/src/com/isode/stroke/streammanagement/StanzaAckResponder.java @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2011 Isode Limited, London, England. + * All rights reserved. + */ +/* + * Copyright (c) 2010 Remko Tron¨on. + * All rights reserved. + */ +package com.isode.stroke.streammanagement; + +import com.isode.stroke.signals.Signal1; + +public class StanzaAckResponder { + + static final long MAX_HANDLED_STANZA_COUNT = Long.parseLong("4294967295"); //boost::numeric_cast<unsigned int>((1ULL<<32) - 1); + + public StanzaAckResponder() { + } + + public void handleStanzaReceived() { + handledStanzasCount = (handledStanzasCount == MAX_HANDLED_STANZA_COUNT ? 0 : handledStanzasCount + 1); + } + + public void handleAckRequestReceived() { + onAck.emit(handledStanzasCount); + } + public Signal1<Long> onAck = new Signal1<Long>(); + private long handledStanzasCount = 0; +} |