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/Database | |
| parent | 6e45c371c4098942e0085a71577a07b17725ee93 (diff) | |
Core/Common: Tokenizer -> Trinity::Tokenize (PR: #25327)
(cherry picked from commit 534a2388b7c662c8796aabb1ec8cb424879799b6)
Diffstat (limited to 'src/server/database/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 |
3 files changed, 22 insertions, 9 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) : |
