diff options
| author | Eugen Wissner <belka@caraus.de> | 2026-05-12 16:32:40 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2026-05-12 16:32:40 +0200 |
| commit | c04278ff84c2c4d9c54bbd43c1542e4eace40419 (patch) | |
| tree | 5d24863c391b2c34b187f2e101faab2d4fd46bb5 /backend/pkgtools.cpp | |
| parent | 8dd9efa88da99f602a6848731a115f10ec3a5b31 (diff) | |
| download | katja-c04278ff84c2c4d9c54bbd43c1542e4eace40419.tar.gz | |
Migrate Pkgtools char pointer fields to strings
Diffstat (limited to 'backend/pkgtools.cpp')
| -rw-r--r-- | backend/pkgtools.cpp | 68 |
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); } } |
