QXmpp: QXmppFileSharingManager Class Reference

QXmpp Version: 1.14.2

Loading...
Searching...
No Matches
QXmppFileSharingManager Class Reference
Inheritance diagram for QXmppFileSharingManager:

## Public Types
using | MetadataGenerator = std::function<QFuture<std::shared_ptr<MetadataGeneratorResult>>(std::unique_ptr<QIODevice>)>

## Public Member Functions
void | setMetadataGenerator (MetadataGenerator &&generator)
| Register a function that is called when metadata needs to be gererated for a file.
template<typename ProviderType>
void | registerProvider (std::shared_ptr< ProviderType > manager)
| Register a provider for automatic downloads.
std::shared_ptr< QXmppFileUpload > | uploadFile (std::shared_ptr< QXmppFileSharingProvider > provider, const QString &filePath, const std::optional< QString > &description={})
| Upload a file in a way that it can be attached to a message.
std::shared_ptr< QXmppFileDownload > | downloadFile (const QXmppFileShare &fileShare, std::unique_ptr< QIODevice > output)
| Download a file from a QXmppFileShare.
Public Member Functions inherited from QXmppClientExtension
| QXmppClientExtension ()
virtual QStringList | discoveryFeatures () const
virtual QList< QXmppDiscoIdentity > | discoveryIdentities () const
virtual bool | handleStanza (const QDomElement &stanza)
| You need to implement this method to process incoming XMPP stanzas.
virtual bool | handleStanza (const QDomElement &stanza, const std::optional< QXmppE2eeMetadata > &e2eeMetadata)
| You need to implement this method to process incoming XMPP stanzas.
Public Member Functions inherited from QXmppLoggable
| QXmppLoggable (QObject *parent=nullptr)
Q_SIGNAL void | setGauge (const QString &gauge, double value)
| Sets the given gauge to value.
Q_SIGNAL void | logMessage (QXmppLogger::MessageType type, const QString &msg)
| This signal is emitted to send logging messages.
Q_SIGNAL void | updateCounter (const QString &counter, qint64 amount=1)
| Updates the given counter by amount.

## Friends
class | QXmppEncryptedFileSharingProvider

## Additional Inherited Members
Protected Member Functions inherited from QXmppClientExtension
QXmppClient * | client () 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)
| Logs a debugging message.
void | info (const QString &message)
| Logs an informational message.
void | warning (const QString &message)
| Logs a warning message.
void | logReceived (const QString &message)
| Logs a received packet.
void | logSent (const QString &message)
| Logs a sent packet.

## Detailed Description

The file sharing manager allows to easily send and retrieve files in a chat.

Since
  QXmpp 1.5

## Member Typedef Documentation

## ◆ MetadataGenerator

using QXmppFileSharingManager::MetadataGenerator = std::function<QFuture<std::shared_ptr<MetadataGeneratorResult>>(std::unique_ptr<QIODevice>)>

The function signature of a metadata generator function

## Member Function Documentation

## ◆ downloadFile()

std::shared_ptr< QXmppFileDownload > QXmppFileSharingManager::downloadFile | ( | const QXmppFileShare & | fileShare,
|  | std::unique_ptr< QIODevice > | output )

Download a file from a QXmppFileShare.

Warning
  This function currently does not check the hash of the downloaded file.

Make sure to register the provider that handles the sources used in this file share before calling this function.

Parameters

  fileShare | The file share object which you want to download
  output | An open QIODevice that the data should be written into. In most cases, a QFile

Returns
  An object that allows to track the progress of the download.

## ◆ registerProvider()

template<typename ProviderType>

void QXmppFileSharingManager::registerProvider | ( | std::shared_ptr< ProviderType > | manager | ) |
| inline

Register a provider for automatic downloads.

Parameters

  manager | A shared_ptr to a QXmppFileSharingProvider subclass The provider must define SourceType to the type of the accepted file source.

## ◆ setMetadataGenerator()

void QXmppFileSharingManager::setMetadataGenerator | ( | MetadataGenerator && | generator | ) |

Register a function that is called when metadata needs to be gererated for a file.

The function is passed a QIODevice, so if you need the path of the file on disk, you can dynamically cast it to a QFile and access the fileName. When doing that, make sure to check the result, as in the future this function might be passed other QIODevices than QFile.

## ◆ uploadFile()

std::shared_ptr< QXmppFileUpload > QXmppFileSharingManager::uploadFile | ( | std::shared_ptr< QXmppFileSharingProvider > | provider,
|  | const QString & | filePath,
|  | const std::optional< QString > & | description = {} )

Upload a file in a way that it can be attached to a message.

Parameters

  provider | The provider class decides how the file is uploaded
  filePath | Path to a file that should be uploaded
  description | Optional description of the file

Returns
  An object that allows to track the progress of the upload. Once the upload is finished, the finished signal is emitted on it.

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

- QXmppFileSharingManager.h
- QXmppFileSharingManager.cpp