diff options
Diffstat (limited to 'katja/database.cpp')
| -rw-r--r-- | katja/database.cpp | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/katja/database.cpp b/katja/database.cpp deleted file mode 100644 index 4f4b5b8..0000000 --- a/katja/database.cpp +++ /dev/null @@ -1,96 +0,0 @@ -/* - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ -#include "katja/database.hpp" - -#include <filesystem> - -namespace katja -{ - database_package database_package::create_database_package(const std::string& fullname) - { - std::string::const_reverse_iterator begin_iterator = std::crbegin(fullname); - std::string::const_reverse_iterator end_iterator = begin_iterator; - int minus_counter = 0; - - std::string build_tag; - std::string architecture; - std::string version; - - for (; begin_iterator != std::crend(fullname) && minus_counter < 3; ++begin_iterator) - { - if (*begin_iterator == '-') - { - if (minus_counter == 0) - { - build_tag = std::string(begin_iterator.base(), end_iterator.base()); - } - else if (minus_counter == 1) - { - architecture = std::string(begin_iterator.base(), end_iterator.base()); - } - else if (minus_counter == 2) - { - version = std::string(begin_iterator.base(), end_iterator.base()); - } - end_iterator = begin_iterator + 1; - ++minus_counter; - } - } - return database_package(std::string(fullname.cbegin(), end_iterator.base()), - std::move(version), std::move(architecture), std::move(build_tag)); - } - - database_package::database_package(std::string&& name, std::string&& version, - std::string&& architecture, std::string&& build_tag) - : name(name), version(version), architecture(architecture), build_tag(build_tag) - { - } - - database_package::database_package(const std::string& fullname) - : database_package(create_database_package(fullname)) - { - } - - bool database_package::operator<(const database_package& that) const - { - return this->name < that.name; - } - - bool database_package::operator>(const database_package& that) const - { - return this->name > that.name; - } - - std::string database_package::to_string() const - { - std::string package_string; - const std::size_t total_size = this->name.size() + this->version.size() - + this->architecture.size() + this->build_tag.size() + 3; - - package_string.reserve(total_size); - package_string.append(this->name); - package_string.push_back('-'); - package_string.append(this->version); - package_string.push_back('-'); - package_string.append(this->architecture); - package_string.push_back('-'); - package_string.append(this->build_tag); - - return package_string; - } - - package_database read_installed_database() - { - package_database result; - - for (const auto& entry : std::filesystem::directory_iterator(katja::database)) - { - database_package database_entry{ entry.path().filename() }; - result.emplace(database_entry.name, database_entry); - } - return result; - } -} |
