summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/StreamStack/XMPPLayer.cpp')
-rw-r--r--Swiften/StreamStack/XMPPLayer.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/Swiften/StreamStack/XMPPLayer.cpp b/Swiften/StreamStack/XMPPLayer.cpp
index d4e329b..3ecda95 100644
--- a/Swiften/StreamStack/XMPPLayer.cpp
+++ b/Swiften/StreamStack/XMPPLayer.cpp
@@ -29,22 +29,27 @@ XMPPLayer::~XMPPLayer() {
}
void XMPPLayer::writeHeader(const ProtocolHeader& header) {
- onWriteData(ByteArray(xmppSerializer_->serializeHeader(header)));
+ writeDataInternal(ByteArray(xmppSerializer_->serializeHeader(header)));
}
void XMPPLayer::writeFooter() {
- onWriteData(ByteArray(xmppSerializer_->serializeFooter()));
+ writeDataInternal(ByteArray(xmppSerializer_->serializeFooter()));
}
void XMPPLayer::writeElement(boost::shared_ptr<Element> element) {
- onWriteData(ByteArray(xmppSerializer_->serializeElement(element)));
+ writeDataInternal(ByteArray(xmppSerializer_->serializeElement(element)));
}
void XMPPLayer::writeData(const String& data) {
- onWriteData(ByteArray(data));
+ writeDataInternal(ByteArray(data));
}
-void XMPPLayer::parseData(ByteArray data) {
+void XMPPLayer::writeDataInternal(const ByteArray& data) {
+ onWriteData(data);
+ writeDataToChildLayer(data);
+}
+
+void XMPPLayer::handleDataRead(const ByteArray& data) {
onDataRead(data);
inParser_ = true;
if (!xmppParser_->parse(String(data.getData(), data.getSize()))) {