summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Component')
-rw-r--r--Swiften/Component/ComponentConnector.cpp4
-rw-r--r--Swiften/Component/ComponentConnector.h8
-rw-r--r--Swiften/Component/ComponentSession.h3
-rw-r--r--Swiften/Component/ComponentSessionStanzaChannel.cpp4
-rw-r--r--Swiften/Component/CoreComponent.cpp14
-rw-r--r--Swiften/Component/CoreComponent.h24
-rw-r--r--Swiften/Component/UnitTest/ComponentConnectorTest.cpp4
7 files changed, 38 insertions, 23 deletions
diff --git a/Swiften/Component/ComponentConnector.cpp b/Swiften/Component/ComponentConnector.cpp
index a7375a7..7789c4c 100644
--- a/Swiften/Component/ComponentConnector.cpp
+++ b/Swiften/Component/ComponentConnector.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010-2016 Isode Limited.
+ * Copyright (c) 2010-2018 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
@@ -15,7 +15,7 @@
namespace Swift {
-ComponentConnector::ComponentConnector(const std::string& hostname, int port, DomainNameResolver* resolver, ConnectionFactory* connectionFactory, TimerFactory* timerFactory) : hostname(hostname), port(port), resolver(resolver), connectionFactory(connectionFactory), timerFactory(timerFactory), timeoutMilliseconds(0) {
+ComponentConnector::ComponentConnector(const std::string& hostname, unsigned short port, DomainNameResolver* resolver, ConnectionFactory* connectionFactory, TimerFactory* timerFactory) : hostname(hostname), port(port), resolver(resolver), connectionFactory(connectionFactory), timerFactory(timerFactory), timeoutMilliseconds(0) {
}
void ComponentConnector::setTimeoutMilliseconds(int milliseconds) {
diff --git a/Swiften/Component/ComponentConnector.h b/Swiften/Component/ComponentConnector.h
index ab36901..cfd49fe 100644
--- a/Swiften/Component/ComponentConnector.h
+++ b/Swiften/Component/ComponentConnector.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010-2016 Isode Limited.
+ * Copyright (c) 2010-2018 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
@@ -28,7 +28,7 @@ namespace Swift {
public:
typedef std::shared_ptr<ComponentConnector> ref;
- static ComponentConnector::ref create(const std::string& hostname, int port, DomainNameResolver* resolver, ConnectionFactory* connectionFactory, TimerFactory* timerFactory) {
+ static ComponentConnector::ref create(const std::string& hostname, unsigned short port, DomainNameResolver* resolver, ConnectionFactory* connectionFactory, TimerFactory* timerFactory) {
return ref(new ComponentConnector(hostname, port, resolver, connectionFactory, timerFactory));
}
@@ -40,7 +40,7 @@ namespace Swift {
boost::signals2::signal<void (std::shared_ptr<Connection>)> onConnectFinished;
private:
- ComponentConnector(const std::string& hostname, int port, DomainNameResolver*, ConnectionFactory*, TimerFactory*);
+ ComponentConnector(const std::string& hostname, unsigned short port, DomainNameResolver*, ConnectionFactory*, TimerFactory*);
void handleAddressQueryResult(const std::vector<HostAddress>& address, boost::optional<DomainNameResolveError> error);
void tryNextAddress();
@@ -53,7 +53,7 @@ namespace Swift {
private:
std::string hostname;
- int port;
+ unsigned short port;
DomainNameResolver* resolver;
ConnectionFactory* connectionFactory;
TimerFactory* timerFactory;
diff --git a/Swiften/Component/ComponentSession.h b/Swiften/Component/ComponentSession.h
index 9d963a1..dcb9b4a 100644
--- a/Swiften/Component/ComponentSession.h
+++ b/Swiften/Component/ComponentSession.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010-2016 Isode Limited.
+ * Copyright (c) 2010-2017 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
@@ -19,7 +19,6 @@
#include <Swiften/Session/SessionStream.h>
namespace Swift {
- class ComponentAuthenticator;
class CryptoProvider;
class SWIFTEN_API ComponentSession : public std::enable_shared_from_this<ComponentSession> {
diff --git a/Swiften/Component/ComponentSessionStanzaChannel.cpp b/Swiften/Component/ComponentSessionStanzaChannel.cpp
index e4bf231..deac8b2 100644
--- a/Swiften/Component/ComponentSessionStanzaChannel.cpp
+++ b/Swiften/Component/ComponentSessionStanzaChannel.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010-2017 Isode Limited.
+ * Copyright (c) 2010-2019 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
@@ -47,7 +47,7 @@ std::string ComponentSessionStanzaChannel::getNewIQID() {
void ComponentSessionStanzaChannel::send(std::shared_ptr<Stanza> stanza) {
if (!isAvailable()) {
- SWIFT_LOG(warning) << "Component: Trying to send a stanza while disconnected." << std::endl;
+ SWIFT_LOG(warning) << "Component: Trying to send a stanza while disconnected.";
return;
}
session->sendStanza(stanza);
diff --git a/Swiften/Component/CoreComponent.cpp b/Swiften/Component/CoreComponent.cpp
index 3896bdd..ef7d3a4 100644
--- a/Swiften/Component/CoreComponent.cpp
+++ b/Swiften/Component/CoreComponent.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010-2016 Isode Limited.
+ * Copyright (c) 2010-2019 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
@@ -33,7 +33,7 @@ CoreComponent::CoreComponent(const JID& jid, const std::string& secret, NetworkF
CoreComponent::~CoreComponent() {
if (session_ || connection_) {
- SWIFT_LOG(warning) << "Component not disconnected properly" << std::endl;
+ SWIFT_LOG(warning) << "Component not disconnected properly";
}
delete iqRouter_;
@@ -43,7 +43,7 @@ CoreComponent::~CoreComponent() {
delete stanzaChannel_;
}
-void CoreComponent::connect(const std::string& host, int port) {
+void CoreComponent::connect(const std::string& host, unsigned short port) {
assert(!connector_);
connector_ = ComponentConnector::create(host, port, networkFactories->getDomainNameResolver(), networkFactories->getConnectionFactory(), networkFactories->getTimerFactory());
connector_->onConnectFinished.connect(boost::bind(&CoreComponent::handleConnectorFinished, this, _1));
@@ -166,4 +166,12 @@ void CoreComponent::sendData(const std::string& data) {
sessionStream_->writeData(data);
}
+bool CoreComponent::isActive() const {
+ return session_ || connector_;
+}
+
+bool CoreComponent::isAvailable() const {
+ return stanzaChannel_->isAvailable();
+}
+
}
diff --git a/Swiften/Component/CoreComponent.h b/Swiften/Component/CoreComponent.h
index 669be97..7565d00 100644
--- a/Swiften/Component/CoreComponent.h
+++ b/Swiften/Component/CoreComponent.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010-2016 Isode Limited.
+ * Copyright (c) 2010-2018 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
@@ -26,11 +26,10 @@
#include <Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.h>
namespace Swift {
- class EventLoop;
+ class BasicSessionStream;
+ class ComponentSession;
class IQRouter;
class NetworkFactories;
- class ComponentSession;
- class BasicSessionStream;
/**
* The central class for communicating with an XMPP server as a component.
@@ -47,7 +46,7 @@ namespace Swift {
CoreComponent(const JID& jid, const std::string& secret, NetworkFactories* networkFactories);
virtual ~CoreComponent();
- void connect(const std::string& host, int port);
+ void connect(const std::string& host, unsigned short port);
void disconnect();
void sendMessage(std::shared_ptr<Message>);
@@ -62,9 +61,18 @@ namespace Swift {
return stanzaChannel_;
}
- bool isAvailable() const {
- return stanzaChannel_->isAvailable();
- }
+ /**
+ * Checks whether the component is connected to the server,
+ * and stanzas can be sent.
+ */
+ bool isAvailable() const;
+
+ /**
+ * Checks whether the component is active.
+ *
+ * A component is active when it is connected or connecting to the server.
+ */
+ bool isActive() const;
/**
* Returns the JID of the component
diff --git a/Swiften/Component/UnitTest/ComponentConnectorTest.cpp b/Swiften/Component/UnitTest/ComponentConnectorTest.cpp
index 3b4fa83..bd26989 100644
--- a/Swiften/Component/UnitTest/ComponentConnectorTest.cpp
+++ b/Swiften/Component/UnitTest/ComponentConnectorTest.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010-2016 Isode Limited.
+ * Copyright (c) 2010-2018 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
@@ -146,7 +146,7 @@ class ComponentConnectorTest : public CppUnit::TestFixture {
}
private:
- ComponentConnector::ref createConnector(const std::string& hostname, int port) {
+ ComponentConnector::ref createConnector(const std::string& hostname, unsigned short port) {
ComponentConnector::ref connector = ComponentConnector::create(hostname, port, resolver, connectionFactory, timerFactory);
connector->onConnectFinished.connect(boost::bind(&ComponentConnectorTest::handleConnectorFinished, this, _1));
return connector;