File indexing completed on 2024-04-28 15:17:55

0001 /*
0002  * BluezQt - Asynchronous BlueZ wrapper library
0003  *
0004  * SPDX-FileCopyrightText: 2015 David Rosca <nowrep@gmail.com>
0005  *
0006  * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0007  */
0008 
0009 #ifndef BLUEZQT_OBEXFILETRANSFERENTRY_H
0010 #define BLUEZQT_OBEXFILETRANSFERENTRY_H
0011 
0012 #include <QSharedPointer>
0013 #include <QString>
0014 
0015 #include "bluezqt_export.h"
0016 
0017 namespace BluezQt
0018 {
0019 /**
0020  * @class BluezQt::ObexFileTransferEntry obexfiletransferentry.h <BluezQt/ObexFileTransferEntry>
0021  *
0022  * OBEX file transfer entry.
0023  *
0024  * This class represents an entry in remote file system.
0025  */
0026 class BLUEZQT_EXPORT ObexFileTransferEntry
0027 {
0028 public:
0029     /** Type of entry. */
0030     enum Type {
0031         /** Indicates that the entry is a file. */
0032         File,
0033         /** Indicates that the entry is a folder. */
0034         Folder,
0035         /** Indicates that the entry is invalid. */
0036         Invalid,
0037     };
0038 
0039     /**
0040      * Creates a new invalid ObexFileTransferEntry object.
0041      */
0042     explicit ObexFileTransferEntry();
0043 
0044     /**
0045      * Destroys an ObexFileTransferEntry object.
0046      */
0047     virtual ~ObexFileTransferEntry();
0048 
0049     /**
0050      * Copy constructor.
0051      *
0052      * @param other
0053      */
0054     ObexFileTransferEntry(const ObexFileTransferEntry &other);
0055 
0056     /**
0057      * Copy assignment operator.
0058      *
0059      * @param other
0060      */
0061     ObexFileTransferEntry &operator=(const ObexFileTransferEntry &other);
0062 
0063     /**
0064      * Returns whether the entry is valid.
0065      *
0066      * This only checks if type() != Invalid.
0067      *
0068      * @return true if entry is valid
0069      */
0070     bool isValid() const;
0071 
0072     /**
0073      * Returns a name of the entry.
0074      *
0075      * @return name of entry
0076      */
0077     QString name() const;
0078 
0079     /**
0080      * Returns a label of the entry.
0081      *
0082      * @return label of entry
0083      */
0084     QString label() const;
0085 
0086     /**
0087      * Returns a type of the entry.
0088      *
0089      * Entry can be either a file or folder.
0090      *
0091      * @return type of entry
0092      */
0093     Type type() const;
0094 
0095     /**
0096      * Returns a size of the entry.
0097      *
0098      * Size is a number of items in the folder or file size in bytes.
0099      *
0100      * @return size of entry
0101      */
0102     quint64 size() const;
0103 
0104     /**
0105      * Returns a permissions of the entry.
0106      *
0107      * @return permissions of entry
0108      */
0109     QString permissions() const;
0110 
0111     /**
0112      * Returns a memory type where the entry is stored.
0113      *
0114      * @return memory type
0115      */
0116     QString memoryType() const;
0117 
0118     /**
0119      * Returns a modification time of the entry.
0120      *
0121      * @return modification time of entry
0122      */
0123     QDateTime modificationTime() const;
0124 
0125 private:
0126     BLUEZQT_NO_EXPORT explicit ObexFileTransferEntry(const QVariantMap &properties);
0127 
0128     QSharedPointer<class ObexFileTransferEntryPrivate> d;
0129 
0130     friend class PendingCallPrivate;
0131 };
0132 
0133 } // namespace BluezQt
0134 
0135 Q_DECLARE_METATYPE(BluezQt::ObexFileTransferEntry)
0136 
0137 #endif // BLUEZQT_OBEXFILETRANSFERENTRY_H