summaryrefslogtreecommitdiff
path: root/backend/pkgtools.cpp
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2026-05-12 16:32:40 +0200
committerEugen Wissner <belka@caraus.de>2026-05-12 16:32:40 +0200
commitc04278ff84c2c4d9c54bbd43c1542e4eace40419 (patch)
tree5d24863c391b2c34b187f2e101faab2d4fd46bb5 /backend/pkgtools.cpp
parent8dd9efa88da99f602a6848731a115f10ec3a5b31 (diff)
downloadkatja-c04278ff84c2c4d9c54bbd43c1542e4eace40419.tar.gz
Migrate Pkgtools char pointer fields to strings
Diffstat (limited to 'backend/pkgtools.cpp')
-rw-r--r--backend/pkgtools.cpp68
1 files changed, 28 insertions, 40 deletions
diff --git a/backend/pkgtools.cpp b/backend/pkgtools.cpp
index bb04a10..58a752f 100644
--- a/backend/pkgtools.cpp
+++ b/backend/pkgtools.cpp
@@ -10,6 +10,8 @@ module;
#include <sqlite3.h>
#include <cstdint>
#include <glib-object.h>
+#include <string>
+#include <regex>
export module katja.pkgtools;
@@ -21,39 +23,29 @@ class Pkgtools
{
public:
/**
- * katja::Pkgtools::get_name:
- *
- * Retrieves the repository name.
- *
- * Returns: Repository name.
- **/
- const char *get_name() const noexcept
- {
- return this->name;
- }
+ * Repository name.
+ */
+ const std::string name;
/**
- * katja::Pkgtools::get_mirror:
- *
- * Retrieves the repository mirror.
- *
- * Returns: Repository mirror.
- **/
- const char *get_mirror() const noexcept
- {
- return this->mirror;
- }
+ * Repository mirror.
+ */
+ const std::string mirror;
/**
- * katja::Pkgtools::get_order:
- *
- * Retrieves the repository order.
- *
- * Returns: Repository order.
- **/
- std::uint8_t get_order() const noexcept
+ * Repository order.
+ */
+ const std::uint8_t order;
+
+ /**
+ * katja::Pkgtools::Pkgtools:
+ * @name: Repository name.
+ * @mirror: Repository mirror.
+ * @order: Repository order.
+ */
+ Pkgtools(const std::string& name, const std::string& mirror, std::uint8_t order)
+ : name(name), mirror(mirror), order(order)
{
- return this->order;
}
/**
@@ -64,10 +56,9 @@ public:
*
* Returns: %TRUE if the package is blacklisted, %FALSE otherwise.
**/
- bool is_blacklisted(const char *pkg) const noexcept
+ bool is_blacklisted(const std::string_view& pkg) const noexcept
{
- return this->blacklist
- && g_regex_match (this->blacklist, pkg, static_cast<GRegexMatchFlags>(0), nullptr);
+ return std::regex_match(std::cbegin(pkg), std::cend(pkg), this->blacklist);
}
virtual ~Pkgtools() noexcept
@@ -101,12 +92,12 @@ public:
return false;
}
sqlite3_bind_text(statement, 1, pkg_name, -1, SQLITE_TRANSIENT);
- sqlite3_bind_int(statement, 2, this->get_order());
+ sqlite3_bind_int(statement, 2, this->order);
if (sqlite3_step(statement) == SQLITE_ROW)
{
dest_filename = g_build_filename(dest_dir_name, sqlite3_column_text(statement, 1), nullptr);
- source_url = g_strconcat(this->get_mirror(),
+ source_url = g_strconcat(this->mirror.c_str(),
sqlite3_column_text(statement, 0),
"/",
sqlite3_column_text(statement, 1),
@@ -150,13 +141,13 @@ public:
}
sqlite3_bind_text(statement, 1, pkg_name, -1, SQLITE_TRANSIENT);
- sqlite3_bind_int(statement, 2, this->get_order());
+ sqlite3_bind_int(statement, 2, this->order);
if (sqlite3_step(statement) == SQLITE_ROW)
{
pkg_filename = g_build_filename(LOCALSTATEDIR,
"cache",
- "PackageKit",
+ "katja",
"downloads",
sqlite3_column_text(statement, 0),
nullptr);
@@ -173,10 +164,7 @@ public:
virtual void generate_cache(JobData *job_data, const char *tmpl) noexcept = 0;
protected:
- char *name = nullptr;
- char *mirror = nullptr;
- std::uint8_t order;
- GRegex *blacklist = nullptr;
+ std::regex blacklist;
};
/**
@@ -186,6 +174,6 @@ int cmp_repo(const void *a, const void *b)
{
auto repo = static_cast<const Pkgtools *> (a);
- return g_strcmp0(repo->get_name(), (char *) b);
+ return g_strcmp0(repo->name.c_str(), (char *) b);
}
}