18 class TransferManager;
149 const QString& variant,
151 const QString& comment) = 0;
156Q_DECLARE_INTERFACE (
LC::
Azoth::ITransferManager,
"org.Deviant.LeechCraft.Azoth.ITransferManager/1.0")
This interface must be implemented by objects representing file transfer jobs.
virtual Emitters::TransferJob & GetTransferJobEmitter()=0
virtual void Abort()=0
Aborts a transfer.
virtual ~ITransferJob()=default
This interface must be implemented by transfer managers returned from IAccount::GetTransferManager().
virtual void Decline(const IncomingOffer &)=0
virtual ITransferJob * SendFile(const QString &id, const QString &variant, const QString &path, const QString &comment)=0
Requests a file transfer with the remote party.
virtual ~ITransferManager()=default
virtual Emitters::TransferManager & GetTransferManagerEmitter()=0
virtual bool IsAvailable() const =0
Returns whether the transfer manager is available.
virtual ITransferJob * Accept(const IncomingOffer &offer, const QString &savePath)=0
std::variant< Transfers::Phase, Transfers::Error > TransferState
bool IsTerminal(const TransferState &state)
bool operator==(const IncomingOffer &other) const =default
ITransferManager * Manager_
bool operator==(const Error &) const =default