summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Network/ProxiedConnection.h')
-rw-r--r--Swiften/Network/ProxiedConnection.h87
1 files changed, 42 insertions, 45 deletions
diff --git a/Swiften/Network/ProxiedConnection.h b/Swiften/Network/ProxiedConnection.h
index aa8df38..f79845a 100644
--- a/Swiften/Network/ProxiedConnection.h
+++ b/Swiften/Network/ProxiedConnection.h
@@ -1,67 +1,64 @@
/*
- * Copyright (c) 2012 Remko Tronçon
- * Licensed under the GNU General Public License v3.
- * See Documentation/Licenses/GPLv3.txt for more information.
+ * Copyright (c) 2012-2018 Isode Limited.
+ * All rights reserved.
+ * See the COPYING file for more information.
*/
#pragma once
-#include <boost/enable_shared_from_this.hpp>
+#include <memory>
+#include <Swiften/Base/API.h>
+#include <Swiften/Base/SafeString.h>
#include <Swiften/Network/Connection.h>
#include <Swiften/Network/Connector.h>
#include <Swiften/Network/HostAddressPort.h>
-#include <Swiften/Base/SafeString.h>
-
-namespace boost {
- class thread;
- namespace system {
- class error_code;
- }
-}
namespace Swift {
- class ConnectionFactory;
+ class ConnectionFactory;
+
+ class SWIFTEN_API ProxiedConnection : public Connection, public std::enable_shared_from_this<ProxiedConnection> {
+ public:
+ ProxiedConnection(DomainNameResolver* resolver, ConnectionFactory* connectionFactory, TimerFactory* timerFactory, const std::string& proxyHost, unsigned short proxyPort);
+ virtual ~ProxiedConnection();
- class ProxiedConnection : public Connection, public boost::enable_shared_from_this<ProxiedConnection> {
- public:
- ProxiedConnection(DomainNameResolver* resolver, ConnectionFactory* connectionFactory, TimerFactory* timerFactory, const std::string& proxyHost, int proxyPort);
- ~ProxiedConnection();
+ virtual void listen();
+ virtual void connect(const HostAddressPort& address);
+ virtual void disconnect();
+ virtual void write(const SafeByteArray& data);
- virtual void listen();
- virtual void connect(const HostAddressPort& address);
- virtual void disconnect();
- virtual void write(const SafeByteArray& data);
+ virtual HostAddressPort getLocalAddress() const;
+ virtual HostAddressPort getRemoteAddress() const;
- virtual HostAddressPort getLocalAddress() const;
+ private:
+ void handleConnectFinished(Connection::ref connection);
+ void handleDataRead(std::shared_ptr<SafeByteArray> data);
+ void handleDisconnected(const boost::optional<Error>& error);
+ void cancelConnector();
- private:
- void handleConnectFinished(Connection::ref connection);
- void handleDataRead(boost::shared_ptr<SafeByteArray> data);
- void handleDisconnected(const boost::optional<Error>& error);
- void cancelConnector();
+ protected:
+ void setProxyInitializeFinished(bool success);
- protected:
- void setProxyInitializeFinished(bool success);
+ virtual void initializeProxy() = 0;
+ virtual void handleProxyInitializeData(std::shared_ptr<SafeByteArray> data) = 0;
- virtual void initializeProxy() = 0;
- virtual void handleProxyInitializeData(boost::shared_ptr<SafeByteArray> data) = 0;
+ const HostAddressPort& getServer() const {
+ return server_;
+ }
- const HostAddressPort& getServer() const {
- return server_;
- }
+ void reconnect();
- private:
- bool connected_;
- DomainNameResolver* resolver_;
- ConnectionFactory* connectionFactory_;
- TimerFactory* timerFactory_;
- std::string proxyHost_;
- int proxyPort_;
- HostAddressPort server_;
- Connector::ref connector_;
- boost::shared_ptr<Connection> connection_;
- };
+ private:
+ bool connected_;
+ DomainNameResolver* resolver_;
+ ConnectionFactory* connectionFactory_;
+ TimerFactory* timerFactory_;
+ std::string proxyHost_;
+ unsigned short proxyPort_;
+ HostAddressPort server_;
+ Connector::ref connector_;
+ std::shared_ptr<Connection> connection_;
+ };
}