Changeset View
Changeset View
Standalone View
Standalone View
src/engine/experimental/databasesanitizer.h
Show All 28 Lines | |||||
29 | class DatabaseSanitizerImpl; | 29 | class DatabaseSanitizerImpl; | ||
30 | /** | 30 | /** | ||
31 | * \brief Provide methods to show database problems and | 31 | * \brief Provide methods to show database problems and | ||
32 | * sanitize them. | 32 | * sanitize them. | ||
33 | */ | 33 | */ | ||
34 | class BALOO_ENGINE_EXPORT DatabaseSanitizer | 34 | class BALOO_ENGINE_EXPORT DatabaseSanitizer | ||
35 | { | 35 | { | ||
36 | public: | 36 | public: | ||
37 | enum ItemAccessFilterFlags { | ||||
38 | IgnoreNone = 0, | ||||
39 | IgnoreAvailable = 1, | ||||
40 | IgnoreUnavailable = 2, | ||||
41 | IgnoreMounted = 8, | ||||
42 | IgnoreUnmounted = 0x10, | ||||
43 | }; | ||||
44 | Q_DECLARE_FLAGS(ItemAccessFilters, ItemAccessFilterFlags) | ||||
45 | | ||||
46 | public: | ||||
37 | DatabaseSanitizer(const Database& db, Transaction::TransactionType type); | 47 | DatabaseSanitizer(const Database& db, Transaction::TransactionType type); | ||
38 | DatabaseSanitizer(Database* db, Transaction::TransactionType type); | 48 | DatabaseSanitizer(Database* db, Transaction::TransactionType type); | ||
39 | ~DatabaseSanitizer(); | 49 | ~DatabaseSanitizer(); | ||
40 | 50 | | |||
41 | /** | 51 | /** | ||
42 | * Print database content to stdout | 52 | * Print database content to stdout | ||
43 | * | 53 | * | ||
44 | * \p deviceIDs filter by device ids. Negative numbers list everything but... | 54 | * \p deviceIDs filter by device ids. Negative numbers list everything but... | ||
45 | * with empty \p deviceIDs(default) everything is printed. | 55 | * with empty \p deviceIDs(default) everything is printed. | ||
46 | * | 56 | * | ||
47 | * \p missingOnly Simulate purging operation. Only inaccessible items are printed. | 57 | * \p missingOnly Simulate purging operation. Only inaccessible items are printed. | ||
48 | * | 58 | * | ||
49 | * \p urlFilter Filter result urls. Default is null = Print everything. | 59 | * \p urlFilter Filter result urls. Default is null = Print everything. | ||
50 | */ | 60 | */ | ||
51 | void printList(const QVector<qint64>& deviceIds, | 61 | void printList(const QVector<qint64>& deviceIds, | ||
52 | const bool missingOnly, | 62 | const ItemAccessFilters accessFilter = IgnoreNone, | ||
53 | const QSharedPointer<QRegularExpression>& urlFilter | 63 | const QSharedPointer<QRegularExpression>& urlFilter = nullptr | ||
54 | ); | 64 | ); | ||
55 | /** | 65 | /** | ||
56 | * Print info about known devices to stdout | 66 | * Print info about known devices to stdout | ||
57 | * | 67 | * | ||
58 | * \p deviceIDs filter by device ids. Negative numbers list everything but... | 68 | * \p deviceIDs filter by device ids. Negative numbers list everything but... | ||
59 | * with empty \p deviceIDs(default) everything is printed. | 69 | * with empty \p deviceIDs(default) everything is printed. | ||
60 | * | 70 | * | ||
61 | * \p missingOnly Only inaccessible items are printed. | 71 | * \p accessFilter filter by accessibility. E.g IgnoreAvailable|IgnoreUnmounted | ||
72 | * prints only mounted devices with inaccessible files. | ||||
62 | */ | 73 | */ | ||
63 | void printDevices(const QVector<qint64>& deviceIds, const bool missingOnly = false); | 74 | void printDevices(const QVector<qint64>& deviceIds, const ItemAccessFilters accessFilter = IgnoreNone); | ||
64 | 75 | | |||
65 | private: | 76 | private: | ||
66 | DatabaseSanitizer(const DatabaseSanitizer& rhs) = delete; | 77 | DatabaseSanitizer(const DatabaseSanitizer& rhs) = delete; | ||
67 | DatabaseSanitizerImpl* m_pimpl; | 78 | DatabaseSanitizerImpl* m_pimpl; | ||
68 | }; | 79 | }; | ||
69 | 80 | | |||
81 | Q_DECLARE_OPERATORS_FOR_FLAGS(DatabaseSanitizer::ItemAccessFilters) | ||||
82 | | ||||
70 | } | 83 | } | ||
71 | #endif // BALOODATABASESANITIZER_H | 84 | #endif // BALOODATABASESANITIZER_H |