diff options
author | Remko Tronçon <git@el-tramo.be> | 2009-07-31 21:26:33 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2009-08-01 09:13:35 (GMT) |
commit | 336aa7d1c0a5aa223a6543d50ee17d82560c2b84 (patch) | |
tree | b9b74a6502e011b85962173378464f96364c52d0 /Swiften/Network | |
parent | 67d69026c64a96b4e0dc64391b8bdcf43a187fab (diff) | |
download | swift-336aa7d1c0a5aa223a6543d50ee17d82560c2b84.zip swift-336aa7d1c0a5aa223a6543d50ee17d82560c2b84.tar.bz2 |
Added LinkLocalConnectorTest.
Diffstat (limited to 'Swiften/Network')
-rw-r--r-- | Swiften/Network/FakeConnection.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/Swiften/Network/FakeConnection.h b/Swiften/Network/FakeConnection.h new file mode 100644 index 0000000..076a1f1 --- /dev/null +++ b/Swiften/Network/FakeConnection.h @@ -0,0 +1,57 @@ +#pragma once + +#include <boost/optional.hpp> +#include <boost/bind.hpp> +#include <boost/enable_shared_from_this.hpp> +#include <vector> + +#include "Swiften/Network/Connection.h" +#include "Swiften/Network/HostAddressPort.h" +#include "Swiften/EventLoop/EventOwner.h" +#include "Swiften/EventLoop/MainEventLoop.h" + +namespace Swift { + class FakeConnection : + public Connection, + public EventOwner, + public boost::enable_shared_from_this<FakeConnection> { + public: + FakeConnection() {} + + virtual void listen() { + assert(false); + } + + void setError(const Error& e) { + error = boost::optional<Error>(e); + if (connectedTo) { + MainEventLoop::postEvent( + boost::bind(boost::ref(onDisconnected), error), + shared_from_this()); + } + } + + virtual void connect(const HostAddressPort& address) { + if (!error) { + connectedTo = address; + } + MainEventLoop::postEvent( + boost::bind(boost::ref(onConnectFinished), error), + shared_from_this()); + } + + virtual void disconnect() { + MainEventLoop::postEvent( + boost::bind(boost::ref(onDisconnected), error), + shared_from_this()); + } + + virtual void write(const ByteArray& data) { + dataWritten.push_back(data); + } + + boost::optional<HostAddressPort> connectedTo; + std::vector<ByteArray> dataWritten; + boost::optional<Error> error; + }; +} |