summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/isode/stroke/streammanagement/StanzaAckResponder.java')
-rw-r--r--src/com/isode/stroke/streammanagement/StanzaAckResponder.java29
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;
+}