diff options
| author | Remko Tronçon <git@el-tramo.be> | 2012-12-25 14:39:48 (GMT) | 
|---|---|---|
| committer | Remko Tronçon <git@el-tramo.be> | 2013-05-11 10:22:56 (GMT) | 
| commit | 927d62cc54c8a5087dba6b61afa9ad30dc528a23 (patch) | |
| tree | e67dc911bd30c0519d31a542d8e085bbb209879d /Swiften/FileTransfer/FileTransfer.h | |
| parent | 17b188343e7208b875af7af30d94f0bf948f6b93 (diff) | |
| download | swift-927d62cc54c8a5087dba6b61afa9ad30dc528a23.zip swift-927d62cc54c8a5087dba6b61afa9ad30dc528a23.tar.bz2 | |
File Transfer refactoring.
Allocate S5B server lazily.
Forward forts lazily.
Various state machine fixes.
Temporarily disabling S5B proxy support.
Change-Id: I3145e85a99b15a7e457306bbfbe9c0eb570191e4
Diffstat (limited to 'Swiften/FileTransfer/FileTransfer.h')
| -rw-r--r-- | Swiften/FileTransfer/FileTransfer.h | 81 | 
1 files changed, 46 insertions, 35 deletions
| diff --git a/Swiften/FileTransfer/FileTransfer.h b/Swiften/FileTransfer/FileTransfer.h index 29b4ebf..c01aadb 100644 --- a/Swiften/FileTransfer/FileTransfer.h +++ b/Swiften/FileTransfer/FileTransfer.h @@ -4,6 +4,12 @@   * See Documentation/Licenses/BSD-simplified.txt for more information.   */ +/* + * Copyright (c) 2013 Remko Tronçon + * Licensed under the GNU General Public License. + * See the COPYING file for more information. + */ +  #pragma once  #include <boost/cstdint.hpp> @@ -14,46 +20,51 @@  #include <Swiften/FileTransfer/FileTransferError.h>  namespace Swift { +	class FileTransfer { +		public: +			struct State { +				enum Type { +					Initial, +					WaitingForStart, +					Negotiating, +					WaitingForAccept, +					Transferring, +					Canceled, +					Failed, +					Finished +				}; -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) {} -	}; +				State(Type type, const std::string& message = "") : type(type), message(message) {} -public: -	typedef boost::shared_ptr<FileTransfer> ref; +				Type type; +				std::string message; +			}; +			typedef boost::shared_ptr<FileTransfer> ref; -public: -	boost::uintmax_t fileSizeInBytes; -	std::string filename; -	std::string algo; -	std::string hash; +		public: +			FileTransfer(); +			virtual ~FileTransfer(); -public: -	virtual void cancel() = 0; +			virtual void cancel() = 0; -public: -	boost::signal<void (size_t /* proccessedBytes */)> onProcessedBytes; -	boost::signal<void (State)> onStateChange; -	boost::signal<void (boost::optional<FileTransferError>)> onFinished; +			const std::string& getFileName() const { +				return filename; +			} -public: -	virtual ~FileTransfer() {} -}; +			boost::uintmax_t getFileSizeInBytes() const { +				return fileSizeInBytes; +			} +		public: +			boost::signal<void (size_t /* proccessedBytes */)> onProcessedBytes; +			boost::signal<void (const State&)> onStateChanged; +			boost::signal<void (boost::optional<FileTransferError>)> onFinished; + +		protected: +			void setFileInfo(const std::string& name, boost::uintmax_t size); + +		private: +			boost::uintmax_t fileSizeInBytes; +			std::string filename; +	};  } | 
 Swift
 Swift