summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/StreamStack/WhitespacePingLayer.cpp')
-rw-r--r--Swiften/StreamStack/WhitespacePingLayer.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/Swiften/StreamStack/WhitespacePingLayer.cpp b/Swiften/StreamStack/WhitespacePingLayer.cpp
new file mode 100644
index 0000000..b9fbbd1
--- /dev/null
+++ b/Swiften/StreamStack/WhitespacePingLayer.cpp
@@ -0,0 +1,30 @@
+#include "Swiften/StreamStack/WhitespacePingLayer.h"
+#include "Swiften/Network/Timer.h"
+
+namespace Swift {
+
+static const int TIMEOUT_MILLISECONDS = 60000;
+
+WhitespacePingLayer::WhitespacePingLayer() {
+ timer_ = new Timer(TIMEOUT_MILLISECONDS);
+ timer_->onTick.connect(boost::bind(&WhitespacePingLayer::handleTimerTick, this));
+ timer_->start();
+}
+
+WhitespacePingLayer::~WhitespacePingLayer() {
+ delete timer_;
+}
+
+void WhitespacePingLayer::writeData(const ByteArray& data) {
+ onWriteData(data);
+}
+
+void WhitespacePingLayer::handleDataRead(const ByteArray& data) {
+ onDataRead(data);
+}
+
+void WhitespacePingLayer::handleTimerTick() {
+ onWriteData(" ");
+}
+
+}