QXmpp Version: 1.10.0
Public Slots | Signals | Public Member Functions | Properties | Friends | List of all members
QXmppTransferManager Class Reference
Inheritance diagram for QXmppTransferManager:
Inheritance graph
[legend]
Collaboration diagram for QXmppTransferManager:
Collaboration graph
[legend]

Public Slots

QXmppTransferJobsendFile (const QString &jid, const QString &filePath, const QString &description=QString())
 
QXmppTransferJobsendFile (const QString &jid, QIODevice *device, const QXmppTransferFileInfo &fileInfo, const QString &sid=QString())
 

Signals

void fileReceived (QXmppTransferJob *job)
 
void jobStarted (QXmppTransferJob *job)
 This signal is emitted whenever a transfer job is started.
 
void jobFinished (QXmppTransferJob *job)
 
- Signals inherited from QXmppLoggable
void setGauge (const QString &gauge, double value)
 Sets the given gauge to value.
 
void logMessage (QXmppLogger::MessageType type, const QString &msg)
 This signal is emitted to send logging messages.
 
void updateCounter (const QString &counter, qint64 amount=1)
 Updates the given counter by amount.
 

Public Member Functions

 QXmppTransferManager ()
 
QString proxy () const
 Return the JID of the bytestream proxy to use for outgoing transfers.
 
void setProxy (const QString &proxyJid)
 
bool proxyOnly () const
 
void setProxyOnly (bool proxyOnly)
 
QXmppTransferJob::Methods supportedMethods () const
 
void setSupportedMethods (QXmppTransferJob::Methods methods)
 
- Public Member Functions inherited from QXmppClientExtension
 QXmppClientExtension ()
 
virtual QStringList discoveryFeatures () const
 
virtual QList< QXmppDiscoveryIq::IdentitydiscoveryIdentities () const
 
virtual bool handleStanza (const QDomElement &stanza)
 You need to implement this method to process incoming XMPP stanzas. More...
 
virtual bool handleStanza (const QDomElement &stanza, const std::optional< QXmppE2eeMetadata > &e2eeMetadata)
 You need to implement this method to process incoming XMPP stanzas. More...
 
- Public Member Functions inherited from QXmppLoggable
 QXmppLoggable (QObject *parent=nullptr)
 

Properties

QString proxy
 The JID of the bytestream proxy to use for outgoing transfers.
 
bool proxyOnly
 Whether the proxy will systematically be used for outgoing SOCKS5 bytestream transfers.
 
QXmppTransferJob::Methods supportedMethods
 The supported stream methods.
 

Friends

class QXmppTransferManagerPrivate
 

Additional Inherited Members

- Protected Member Functions inherited from QXmppClientExtension
QXmppClientclient () const
 
virtual void setClient (QXmppClient *client)
 
virtual void onRegistered (QXmppClient *client)
 
virtual void onUnregistered (QXmppClient *client)
 
void injectIq (const QDomElement &element, const std::optional< QXmppE2eeMetadata > &e2eeMetadata)
 
bool injectMessage (QXmppMessage &&message)
 
- Protected Member Functions inherited from QXmppLoggable
void debug (const QString &message)
 
void info (const QString &message)
 
void warning (const QString &message)
 
void logReceived (const QString &message)
 
void logSent (const QString &message)
 

Detailed Description

The QXmppTransferManager class provides support for sending and receiving files.

Stream initiation is performed as described in XEP-0095: Stream Initiation and XEP-0096: SI File Transfer. The actual file transfer is then performed using either XEP-0065: SOCKS5 Bytestreams or XEP-0047: In-Band Bytestreams.

To make use of this manager, you need to instantiate it and load it into the QXmppClient instance as follows:

auto *manager = new QXmppTransferManager;
client->addExtension(manager);
QXmppClient * client() const
Definition: QXmppClientExtension.cpp:57
bool addExtension(QXmppClientExtension *extension)
Registers a new extension with the client.
Definition: QXmppClient.cpp:376
QXmppTransferManager()
Definition: QXmppTransferManager.cpp:789

Constructor & Destructor Documentation

◆ QXmppTransferManager()

QXmppTransferManager::QXmppTransferManager ( )

Constructs a QXmppTransferManager to handle incoming and outgoing file transfers.

Member Function Documentation

◆ fileReceived

void QXmppTransferManager::fileReceived ( QXmppTransferJob job)
signal

This signal is emitted when a new file transfer offer is received.

To accept the transfer job, call the job's QXmppTransferJob::accept() method. To refuse the transfer job, call the job's QXmppTransferJob::abort() method.

◆ jobFinished

void QXmppTransferManager::jobFinished ( QXmppTransferJob job)
signal

This signal is emitted whenever a transfer job is finished.

See also
QXmppTransferJob::finished()

◆ proxyOnly()

bool QXmppTransferManager::proxyOnly ( ) const

Return whether the proxy will systematically be used for outgoing SOCKS5 bytestream transfers.

◆ sendFile [1/2]

QXmppTransferJob * QXmppTransferManager::sendFile ( const QString &  jid,
const QString &  filePath,
const QString &  description = QString() 
)
slot

Sends the file at filePath to a remote party.

The remote party will be given the choice to accept or refuse the transfer.

Returns 0 if the jid is not valid or if the file at filePath cannot be read.

Note
The recipient's jid must be a full JID with a resource, for instance "user@host/resource".

◆ sendFile [2/2]

QXmppTransferJob * QXmppTransferManager::sendFile ( const QString &  jid,
QIODevice *  device,
const QXmppTransferFileInfo fileInfo,
const QString &  sid = QString() 
)
slot

Sends the file in device to a remote party.

The remote party will be given the choice to accept or refuse the transfer.

Returns 0 if the jid is not valid.

Note
The recipient's jid must be a full JID with a resource, for instance "user@host/resource".
The ownership of the device should be managed by the caller.

◆ setProxy()

void QXmppTransferManager::setProxy ( const QString &  proxyJid)

Set the JID of the SOCKS5 bytestream proxy to use for outgoing transfers.

If you set a proxy, when you send a file the proxy will be offered to the recipient in addition to your own IP addresses.

◆ setProxyOnly()

void QXmppTransferManager::setProxyOnly ( bool  proxyOnly)

Set whether the proxy should systematically be used for outgoing SOCKS5 bytestream transfers.

Note
If you set this to true and do not provide a proxy using setProxy(), your outgoing transfers will fail!

◆ setSupportedMethods()

void QXmppTransferManager::setSupportedMethods ( QXmppTransferJob::Methods  methods)

Set the supported stream methods. This allows you to selectively enable or disable stream methods (In-Band or SOCKS5 bytestreams).

The methods argument is a combination of zero or more QXmppTransferJob::Method.

◆ supportedMethods()

QXmppTransferJob::Methods QXmppTransferManager::supportedMethods ( ) const

Return the supported stream methods.

The methods are a combination of zero or more QXmppTransferJob::Method.


The documentation for this class was generated from the following files: