/* * Copyright (c) 2011 Tobias Markmann * Licensed under the simplified BSD license. * See Documentation/Licenses/BSD-simplified.txt for more information. */ #pragma once #include #include #include #include #include namespace Swift { class FileTransfer { public: struct State { enum FTState { Canceled, Failed, Finished, Negotiating, Transferring, WaitingForStart, WaitingForAccept, }; FTState state; std::string message; State(FTState state) : state(state), message("") {} State(FTState state, std::string message) : state(state), message(message) {} }; public: typedef boost::shared_ptr ref; public: boost::uintmax_t fileSizeInBytes; std::string filename; std::string algo; std::string hash; public: virtual void cancel() = 0; public: boost::signal onProcessedBytes; boost::signal onStateChange; boost::signal)> onFinished; public: virtual ~FileTransfer() {} }; }