5#ifndef DPROTOCOLDEVICE_H
6#define DPROTOCOLDEVICE_H
8#include <DtkMountGlobal>
25namespace MountPasswdInfoParamKeys {
26inline constexpr char kName[] {
"name" };
27inline constexpr char kPasswd[] {
"passwd" };
28inline constexpr char kDomain[] {
"domain" };
30inline constexpr char kCancel[] {
"cancel" };
38using AskForPasswd = std::function<QVariantMap(
const QString &msg,
const QString &user,
const QString &domain)>;
39using AskForChoice = std::function<int(
const QString &msg,
const QStringList &choices)>;
42namespace DDeviceManager {
43DCORE_NAMESPACE::DExpected<DProtocolDevice *> createProtocolDevice(
const QString &, QObject *);
46class DProtocolDevicePrivate;
51 friend DCORE_NAMESPACE::DExpected<DProtocolDevice *> DDeviceManager::createProtocolDevice(
const QString &, QObject *);
53 Q_PROPERTY(QString path READ path CONSTANT FINAL)
54 Q_PROPERTY(QString mountPoint READ mountPoint CONSTANT FINAL)
55 Q_PROPERTY(QString displayName READ displayName CONSTANT FINAL)
56 Q_PROPERTY(QString fileSystem READ fileSystem CONSTANT FINAL)
57 Q_PROPERTY(quint64 sizeTotal READ sizeTotal CONSTANT FINAL)
58 Q_PROPERTY(quint64 sizeFree READ sizeFree CONSTANT FINAL)
59 Q_PROPERTY(quint64 sizeUsage READ sizeUsage CONSTANT FINAL)
60 Q_PROPERTY(QStringList iconNames READ iconNames CONSTANT FINAL)
74 QString
mount(
const QVariantMap &opts = {});
76 bool unmount(
const QVariantMap &opts = {});
84 explicit DProtocolDevice(
const QString &devicePath, QObject *parent =
nullptr);
86 QScopedPointer<DProtocolDevicePrivate> d_ptr;
用于操作如 smb/ftp/sftp/mpt/gphoto 等协议设备,处理设备的卸载、挂载以及获取设备属性。
Definition dprotocoldevice.h:48
QString mountPoint() const
获取设备挂载点。
void mountAsync(const QVariantMap &opts={}, OperateCallbackWithInfo callback=nullptr)
quint64 sizeTotal() const
获取设备总容量。
quint64 sizeFree() const
获取设备可用空间。
bool unmount(const QVariantMap &opts={})
卸载设备的同步函数。
void setAskForPasswd(AskForPasswd callback)
设置询问用户密码的回调函数。该函数通常在一些需要用户鉴权的设备挂载时使用,例如 smb/ftp/sftp 等。如果没有指定回调函数,默认的用户为本机登录用户,默认密码为空,默认域为 WORKGROUP。
QString mount(const QVariantMap &opts={})
挂载指定的设备。
QString displayName() const
获取设备名称,通常用于帮助用户在界面中识别设备。
void setOperateTimeout(int secs=3)
设置操作超时时间。
QString fileSystem() const
获取设备文件系统。
void setAskForChoice(AskForChoice callback)
设置询问用户选择的回调函数。该函数通常在一些需要用户抉择的设备挂载时使用。如果没有指定,默认的选择为0。
QStringList iconNames() const
获取设备图标。
quint64 sizeUsage() const
获取设备已使用容量。
QString path() const
获取在构造对象时指定的设备路径。
void unmountAsync(const QVariantMap &opts={}, OperateCallback callback=nullptr)
unmount 的异步版本
~DProtocolDevice() override
析构函数
PasswdSaveMode
在需要保存密码时的枚举选项
Definition dprotocoldevice.h:19
@ SaveInSession
Definition dprotocoldevice.h:21
@ Never
Definition dprotocoldevice.h:20
@ SaveForever
Definition dprotocoldevice.h:22
std::function< QVariantMap(const QString &msg, const QString &user, const QString &domain)> AskForPasswd
Definition dprotocoldevice.h:38
std::function< void(bool, const QString &)> OperateCallbackWithInfo
Definition dprotocoldevice.h:36
std::function< int(const QString &msg, const QStringList &choices)> AskForChoice
Definition dprotocoldevice.h:39
std::function< void(bool)> OperateCallback
Definition dprotocoldevice.h:35
constexpr char kPasswd[]
挂载网络设备时,鉴权所使用的用户密码的参数键名
Definition dprotocoldevice.h:27
constexpr char kSaveMode[]
挂载网络设备时,鉴权所使用的用户密码保存模式的参数键名
Definition dprotocoldevice.h:31
constexpr char kCancel[]
挂载网络设备时,用于告知挂载流程用户取消挂载的参数键名
Definition dprotocoldevice.h:30
constexpr char kAnonymous[]
挂载网络设备时,所使用的是否允许匿名访问的参数键名
Definition dprotocoldevice.h:29
constexpr char kName[]
挂载网络设备时,鉴权所使用的用户名的参数键名
Definition dprotocoldevice.h:26
constexpr char kDomain[]
挂载网络设备时,鉴权所使用的用户域的参数键名
Definition dprotocoldevice.h:28