KPackage 5.109.0
packageloader.h
1/*
2 SPDX-FileCopyrightText: 2010 Ryan Rix <ry@n.rix.si>
3
4 SPDX-License-Identifier: LGPL-2.0-or-later
5*/
6
7#ifndef KPACKAGE_LOADER_H
8#define KPACKAGE_LOADER_H
9
10#include <kpackage/package.h>
11
12#include <kpackage/package_export.h>
13
14namespace KPackage
15{
16class PackageLoaderPrivate;
17
30class KPACKAGE_EXPORT PackageLoader
31{
32public:
43 Package loadPackage(const QString &packageFormat, const QString &packagePath = QString());
44
54 QList<KPluginMetaData> listPackages(const QString &packageFormat, const QString &packageRoot = QString());
55
68 QList<KPluginMetaData> findPackages(const QString &packageFormat,
69 const QString &packageRoot = QString(),
70 std::function<bool(const KPluginMetaData &)> filter = std::function<bool(const KPluginMetaData &)>());
71
81 KPackage::PackageStructure *loadPackageStructure(const QString &packageFormat);
82
90 void addKnownPackageStructure(const QString &packageFormat, KPackage::PackageStructure *structure);
91
92#if KPACKAGE_BUILD_DEPRECATED_SINCE(5, 86)
100 KPACKAGE_DEPRECATED_VERSION(5, 86, "deprecated for lack of usage. Use default package loader instead")
101 static void setPackageLoader(PackageLoader *loader);
102#endif
103
108
109protected:
110#if KPACKAGE_BUILD_DEPRECATED_SINCE(5, 86)
124 KPACKAGE_DEPRECATED_VERSION(5, 86, "deprecated for lack of usage. Use default package loading instead")
125 virtual Package internalLoadPackage(const QString &packageFormat);
126#endif
127
129 virtual ~PackageLoader();
130
131private:
132 friend class Package;
133 PackageLoaderPrivate *const d;
134 Q_DISABLE_COPY(PackageLoader)
135};
136
137}
138
139Q_DECLARE_METATYPE(KPackage::PackageLoader *)
140
141#endif
This is an abstract base class which defines an interface to which the package loading logic can comm...
Definition packageloader.h:31
QList< KPluginMetaData > findPackages(const QString &packageFormat, const QString &packageRoot=QString(), std::function< bool(const KPluginMetaData &)> filter=std::function< bool(const KPluginMetaData &)>())
List package of a certain type that match a certain filter function.
Package loadPackage(const QString &packageFormat, const QString &packagePath=QString())
Load a Package plugin.
static PackageLoader * self()
Return the active plugin loader.
void addKnownPackageStructure(const QString &packageFormat, KPackage::PackageStructure *structure)
Adds a new known package structure that can be used by the functions to load packages such as loadPac...
KPackage::PackageStructure * loadPackageStructure(const QString &packageFormat)
Loads a PackageStructure for a given format.
QList< KPluginMetaData > listPackages(const QString &packageFormat, const QString &packageRoot=QString())
List all available packages of a certain type.
This class is used to define the filesystem structure of a package type.
Definition packagestructure.h:42
object representing an installed package
Definition package.h:67