From 9f97fdd31a3b9a06b6acfa1101d105e43687e824 Mon Sep 17 00:00:00 2001 From: Treeston Date: Fri, 28 Aug 2020 00:11:16 +0200 Subject: Core/Common: Tokenizer -> Trinity::Tokenize (PR: #25327) (cherry picked from commit 534a2388b7c662c8796aabb1ec8cb424879799b6) --- src/server/database/Database/Field.cpp | 12 ++++++++++++ src/server/database/Database/Field.h | 3 +++ src/server/database/Database/MySQLConnection.cpp | 16 +++++++--------- src/server/database/Logging/AppenderDB.cpp | 2 +- src/server/database/Logging/AppenderDB.h | 6 +++--- 5 files changed, 26 insertions(+), 13 deletions(-) (limited to 'src/server/database') diff --git a/src/server/database/Database/Field.cpp b/src/server/database/Database/Field.cpp index b9d25b3da1b..258bc2078fb 100644 --- a/src/server/database/Database/Field.cpp +++ b/src/server/database/Database/Field.cpp @@ -237,6 +237,18 @@ std::string Field::GetString() const return std::string(string, data.length); } +std::string_view Field::GetStringView() const +{ + if (!data.value) + return {}; + + char const* const string = GetCString(); + if (!string) + return {}; + + return { string, data.length }; +} + std::vector Field::GetBinary() const { std::vector result; diff --git a/src/server/database/Database/Field.h b/src/server/database/Database/Field.h index dcb03344031..a871ef64bfd 100644 --- a/src/server/database/Database/Field.h +++ b/src/server/database/Database/Field.h @@ -21,6 +21,8 @@ #include "Define.h" #include "DatabaseEnvFwd.h" #include +#include +#include #include enum class DatabaseFieldTypes : uint8 @@ -104,6 +106,7 @@ class TC_DATABASE_API Field double GetDouble() const; char const* GetCString() const; std::string GetString() const; + std::string_view GetStringView() const; std::vector GetBinary() const; template std::array GetBinary() const diff --git a/src/server/database/Database/MySQLConnection.cpp b/src/server/database/Database/MySQLConnection.cpp index 96b00648ffa..2f41da9b70f 100644 --- a/src/server/database/Database/MySQLConnection.cpp +++ b/src/server/database/Database/MySQLConnection.cpp @@ -32,21 +32,19 @@ MySQLConnectionInfo::MySQLConnectionInfo(std::string const& infoString) { - Tokenizer tokens(infoString, ';'); + std::vector tokens = Trinity::Tokenize(infoString, ';', true); if (tokens.size() != 5 && tokens.size() != 6) return; - uint8 i = 0; - - host.assign(tokens[i++]); - port_or_socket.assign(tokens[i++]); - user.assign(tokens[i++]); - password.assign(tokens[i++]); - database.assign(tokens[i++]); + host.assign(tokens[0]); + port_or_socket.assign(tokens[1]); + user.assign(tokens[2]); + password.assign(tokens[3]); + database.assign(tokens[4]); if (tokens.size() == 6) - ssl.assign(tokens[i++]); + ssl.assign(tokens[5]); } MySQLConnection::MySQLConnection(MySQLConnectionInfo& connInfo) : diff --git a/src/server/database/Logging/AppenderDB.cpp b/src/server/database/Logging/AppenderDB.cpp index 87910b49c30..5bac05b47e1 100644 --- a/src/server/database/Logging/AppenderDB.cpp +++ b/src/server/database/Logging/AppenderDB.cpp @@ -20,7 +20,7 @@ #include "LogMessage.h" #include "PreparedStatement.h" -AppenderDB::AppenderDB(uint8 id, std::string const& name, LogLevel level, AppenderFlags /*flags*/, std::vector /*extraArgs*/) +AppenderDB::AppenderDB(uint8 id, std::string const& name, LogLevel level, AppenderFlags /*flags*/, std::vector const& /*args*/) : Appender(id, name, level), realmId(0), enabled(false) { } AppenderDB::~AppenderDB() { } diff --git a/src/server/database/Logging/AppenderDB.h b/src/server/database/Logging/AppenderDB.h index 093678ca7ff..f4880df659a 100644 --- a/src/server/database/Logging/AppenderDB.h +++ b/src/server/database/Logging/AppenderDB.h @@ -23,13 +23,13 @@ class TC_DATABASE_API AppenderDB: public Appender { public: - typedef std::integral_constant::type TypeIndex; + static constexpr AppenderType type = APPENDER_DB; - AppenderDB(uint8 id, std::string const& name, LogLevel level, AppenderFlags flags, std::vector extraArgs); + AppenderDB(uint8 id, std::string const& name, LogLevel level, AppenderFlags flags, std::vector const& args); ~AppenderDB(); void setRealmId(uint32 realmId) override; - AppenderType getType() const override { return TypeIndex::value; } + AppenderType getType() const override { return type; } private: uint32 realmId; -- cgit v1.2.3