diff options
| author | Treeston <treeston.mmoc@gmail.com> | 2020-08-28 00:11:16 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2022-02-04 00:27:14 +0100 |
| commit | 9f97fdd31a3b9a06b6acfa1101d105e43687e824 (patch) | |
| tree | 027f81c18e7733fa3554cf1dd704a0900d254725 /src/server/database | |
| parent | 6e45c371c4098942e0085a71577a07b17725ee93 (diff) | |
Core/Common: Tokenizer -> Trinity::Tokenize (PR: #25327)
(cherry picked from commit 534a2388b7c662c8796aabb1ec8cb424879799b6)
Diffstat (limited to 'src/server/database')
| -rw-r--r-- | src/server/database/Database/Field.cpp | 12 | ||||
| -rw-r--r-- | src/server/database/Database/Field.h | 3 | ||||
| -rw-r--r-- | src/server/database/Database/MySQLConnection.cpp | 16 | ||||
| -rw-r--r-- | src/server/database/Logging/AppenderDB.cpp | 2 | ||||
| -rw-r--r-- | src/server/database/Logging/AppenderDB.h | 6 |
5 files changed, 26 insertions, 13 deletions
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<uint8> Field::GetBinary() const { std::vector<uint8> 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 <array> +#include <string> +#include <string_view> #include <vector> 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<uint8> GetBinary() const; template <size_t S> std::array<uint8, S> 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<std::string_view> 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<char const*> /*extraArgs*/) +AppenderDB::AppenderDB(uint8 id, std::string const& name, LogLevel level, AppenderFlags /*flags*/, std::vector<std::string_view> 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<AppenderType, APPENDER_DB>::type TypeIndex; + static constexpr AppenderType type = APPENDER_DB; - AppenderDB(uint8 id, std::string const& name, LogLevel level, AppenderFlags flags, std::vector<char const*> extraArgs); + AppenderDB(uint8 id, std::string const& name, LogLevel level, AppenderFlags flags, std::vector<std::string_view> const& args); ~AppenderDB(); void setRealmId(uint32 realmId) override; - AppenderType getType() const override { return TypeIndex::value; } + AppenderType getType() const override { return type; } private: uint32 realmId; |
