summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/StreamStack')
-rw-r--r--Swiften/StreamStack/StreamStack.cpp16
-rw-r--r--Swiften/StreamStack/StreamStack.h12
-rw-r--r--Swiften/StreamStack/UnitTest/StreamStackTest.cpp30
3 files changed, 29 insertions, 29 deletions
diff --git a/Swiften/StreamStack/StreamStack.cpp b/Swiften/StreamStack/StreamStack.cpp
index 44a018d..f14f95c 100644
--- a/Swiften/StreamStack/StreamStack.cpp
+++ b/Swiften/StreamStack/StreamStack.cpp
@@ -1,3 +1,3 @@
/*
- * Copyright (c) 2010-2016 Isode Limited.
+ * Copyright (c) 2010-2018 Isode Limited.
* All rights reserved.
@@ -24,12 +24,12 @@ StreamStack::~StreamStack() {
-void StreamStack::addLayer(StreamLayer* newLayer) {
- LowLayer* lowLayer = layers_.empty() ? physicalLayer_ : *layers_.rbegin();
+void StreamStack::addLayer(std::unique_ptr<StreamLayer> streamLayer) {
+ LowLayer* lowLayer = layers_.empty() ? physicalLayer_ : layers_.rbegin()->get();
- xmppLayer_->setChildLayer(newLayer);
- newLayer->setParentLayer(xmppLayer_);
+ xmppLayer_->setChildLayer(streamLayer.get());
+ streamLayer->setParentLayer(xmppLayer_);
- lowLayer->setParentLayer(newLayer);
- newLayer->setChildLayer(lowLayer);
+ lowLayer->setParentLayer(streamLayer.get());
+ streamLayer->setChildLayer(lowLayer);
- layers_.push_back(newLayer);
+ layers_.emplace_back(std::move(streamLayer));
}
diff --git a/Swiften/StreamStack/StreamStack.h b/Swiften/StreamStack/StreamStack.h
index b12a69f..5b77085 100644
--- a/Swiften/StreamStack/StreamStack.h
+++ b/Swiften/StreamStack/StreamStack.h
@@ -1,3 +1,3 @@
/*
- * Copyright (c) 2010-2016 Isode Limited.
+ * Copyright (c) 2010-2018 Isode Limited.
* All rights reserved.
@@ -26,3 +26,3 @@ namespace Swift {
- void addLayer(StreamLayer*);
+ void addLayer(std::unique_ptr<StreamLayer> /* streamLayer */);
@@ -32,5 +32,5 @@ namespace Swift {
- template<typename T> T* getLayer() {
- for (auto& i : layers_) {
- T* layer = dynamic_cast<T*>(i);
+ template<typename T> T* getLayer() const {
+ for (const auto& i : layers_) {
+ T* layer = dynamic_cast<T*>(i.get());
if (layer) {
@@ -45,3 +45,3 @@ namespace Swift {
LowLayer* physicalLayer_;
- std::vector<StreamLayer*> layers_;
+ std::vector<std::unique_ptr<StreamLayer>> layers_;
};
diff --git a/Swiften/StreamStack/UnitTest/StreamStackTest.cpp b/Swiften/StreamStack/UnitTest/StreamStackTest.cpp
index f0f82c9..0b520f1 100644
--- a/Swiften/StreamStack/UnitTest/StreamStackTest.cpp
+++ b/Swiften/StreamStack/UnitTest/StreamStackTest.cpp
@@ -1,3 +1,3 @@
/*
- * Copyright (c) 2010-2016 Isode Limited.
+ * Copyright (c) 2010-2018 Isode Limited.
* All rights reserved.
@@ -63,4 +63,4 @@ class StreamStackTest : public CppUnit::TestFixture {
StreamStack testling(xmppStream_, physicalStream_);
- std::shared_ptr<MyStreamLayer> xStream(new MyStreamLayer("X"));
- testling.addLayer(xStream.get());
+ std::unique_ptr<MyStreamLayer> xStream(new MyStreamLayer("X"));
+ testling.addLayer(std::move(xStream));
@@ -74,6 +74,6 @@ class StreamStackTest : public CppUnit::TestFixture {
StreamStack testling(xmppStream_, physicalStream_);
- std::shared_ptr<MyStreamLayer> xStream(new MyStreamLayer("X"));
- std::shared_ptr<MyStreamLayer> yStream(new MyStreamLayer("Y"));
- testling.addLayer(xStream.get());
- testling.addLayer(yStream.get());
+ std::unique_ptr<MyStreamLayer> xStream(new MyStreamLayer("X"));
+ std::unique_ptr<MyStreamLayer> yStream(new MyStreamLayer("Y"));
+ testling.addLayer(std::move(xStream));
+ testling.addLayer(std::move(yStream));
@@ -97,4 +97,4 @@ class StreamStackTest : public CppUnit::TestFixture {
xmppStream_->onElement.connect(boost::bind(&StreamStackTest::handleElement, this, _1));
- std::shared_ptr<MyStreamLayer> xStream(new MyStreamLayer("<"));
- testling.addLayer(xStream.get());
+ std::unique_ptr<MyStreamLayer> xStream(new MyStreamLayer("<"));
+ testling.addLayer(std::move(xStream));
@@ -108,6 +108,6 @@ class StreamStackTest : public CppUnit::TestFixture {
xmppStream_->onElement.connect(boost::bind(&StreamStackTest::handleElement, this, _1));
- std::shared_ptr<MyStreamLayer> xStream(new MyStreamLayer("s"));
- std::shared_ptr<MyStreamLayer> yStream(new MyStreamLayer("<"));
- testling.addLayer(xStream.get());
- testling.addLayer(yStream.get());
+ std::unique_ptr<MyStreamLayer> xStream(new MyStreamLayer("s"));
+ std::unique_ptr<MyStreamLayer> yStream(new MyStreamLayer("<"));
+ testling.addLayer(std::move(xStream));
+ testling.addLayer(std::move(yStream));
@@ -121,4 +121,4 @@ class StreamStackTest : public CppUnit::TestFixture {
xmppStream_->onWriteData.connect(boost::bind(&StreamStackTest::handleWriteData, this, _1));
- std::shared_ptr<MyStreamLayer> xStream(new MyStreamLayer("X"));
- testling.addLayer(xStream.get());
+ std::unique_ptr<MyStreamLayer> xStream(new MyStreamLayer("X"));
+ testling.addLayer(std::move(xStream));