LeechCraft Azoth 0.6.70-17335-ge406ffdcaf
Modular multiprotocol IM plugin for LeechCraft
Loading...
Searching...
No Matches
itransfermanager.h
Go to the documentation of this file.
1/**********************************************************************
2 * LeechCraft - modular cross-platform feature rich internet client.
3 * Copyright (C) 2006-2014 Georg Rudoy
4 *
5 * Distributed under the Boost Software License, Version 1.0.
6 * (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7 **********************************************************************/
8
9#ifndef PLUGINS_AZOTH_INTERFACES_ITRANSFERMANAGER_H
10#define PLUGINS_AZOTH_INTERFACES_ITRANSFERMANAGER_H
11#include <QObject>
12#include <QString>
13
14namespace LC
15{
16namespace Azoth
17{
29
52
80
85 {
86 public:
87 virtual ~ITransferJob () {}
88
97 virtual QString GetSourceID () const = 0;
98
103 virtual QString GetName () const = 0;
104
109 virtual qint64 GetSize () const = 0;
110
115 virtual QString GetComment () const = 0;
116
121 virtual TransferDirection GetDirection () const = 0;
122
131 virtual void Accept (const QString& out) = 0;
132
138 virtual void Abort () = 0;
139 protected:
147 virtual void transferProgress (qint64 done, qint64 total) = 0;
148
156 virtual void errorAppeared (TransferError error, const QString& msg) = 0;
157
164 virtual void stateChanged (TransferState state) = 0;
165 };
166
171 {
172 public:
173 virtual ~ITransferManager () {}
174
188 virtual bool IsAvailable () const = 0;
189
214 virtual QObject* SendFile (const QString& id,
215 const QString& variant,
216 const QString& name,
217 const QString& comment) = 0;
218 protected:
233 virtual void fileOffered (QObject *job) = 0;
234 };
235}
236}
237
238Q_DECLARE_INTERFACE (LC::Azoth::ITransferJob,
239 "org.Deviant.LeechCraft.Azoth.ITransferJob/1.0")
240Q_DECLARE_INTERFACE (LC::Azoth::ITransferManager,
241 "org.Deviant.LeechCraft.Azoth.ITransferManager/1.0")
242
243#endif
This interface must be implemented by objects representing file transfer jobs.
virtual void Accept(const QString &out)=0
Accepts an incoming transfer.
virtual qint64 GetSize() const =0
Returns the size of the file.
virtual QString GetName() const =0
Returns the name of the file.
virtual TransferDirection GetDirection() const =0
Returns the direction of the transfer.
virtual void Abort()=0
Rejects or aborts a transfer.
virtual void transferProgress(qint64 done, qint64 total)=0
Notifies about transfer progress.
virtual void stateChanged(TransferState state)=0
Notifies about state changes.
virtual QString GetComment() const =0
Returns the human-readable comment.
virtual QString GetSourceID() const =0
Returns the ID of the other party.
virtual void errorAppeared(TransferError error, const QString &msg)=0
Notifies about error.
This interface must be implemented by transfer managers returned from IAccount::GetTransferManager().
virtual void fileOffered(QObject *job)=0
Notifies about incoming transfer request.
virtual QObject * SendFile(const QString &id, const QString &variant, const QString &name, const QString &comment)=0
Requests a file transfer with the remote party.
virtual bool IsAvailable() const =0
Returns whether transfer manager is available.
TransferError
Represents the error condition of the transfer.
TransferState
Represents the state of the file transfer job.
TransferDirection
Represents the direction of the transfer.