summaryrefslogtreecommitdiff
path: root/backend/pkgtools.h
diff options
context:
space:
mode:
Diffstat (limited to 'backend/pkgtools.h')
-rw-r--r--backend/pkgtools.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/backend/pkgtools.h b/backend/pkgtools.h
new file mode 100644
index 0000000..cedf315
--- /dev/null
+++ b/backend/pkgtools.h
@@ -0,0 +1,36 @@
+#ifndef __SLACK_PKGTOOLS_H
+#define __SLACK_PKGTOOLS_H
+
+#include <glib-object.h>
+#include <pk-backend.h>
+
+namespace slack {
+
+class Pkgtools
+{
+public:
+ const gchar *get_name () const noexcept;
+ const gchar *get_mirror () const noexcept;
+ guint8 get_order () const noexcept;
+ gboolean is_blacklisted (const gchar *pkg) const noexcept;
+
+ virtual ~Pkgtools () noexcept;
+
+ gboolean download (PkBackendJob *job,
+ gchar *dest_dir_name, gchar *pkg_name) noexcept;
+ void install (PkBackendJob *job, gchar *pkg_name) noexcept;
+
+ virtual GSList *collect_cache_info (const gchar *tmpl) noexcept = 0;
+ virtual void generate_cache (PkBackendJob *job,
+ const gchar *tmpl) noexcept = 0;
+
+protected:
+ gchar *name = NULL;
+ gchar *mirror = NULL;
+ guint8 order;
+ GRegex *blacklist = NULL;
+};
+
+}
+
+#endif /* __SLACK_PKGTOOLS_H */