aboutsummaryrefslogtreecommitdiff
path: root/src/server/database
diff options
context:
space:
mode:
authorTreeston <treeston.mmoc@gmail.com>2020-08-28 00:11:16 +0200
committerShauren <shauren.trinity@gmail.com>2022-02-04 00:27:14 +0100
commit9f97fdd31a3b9a06b6acfa1101d105e43687e824 (patch)
tree027f81c18e7733fa3554cf1dd704a0900d254725 /src/server/database
parent6e45c371c4098942e0085a71577a07b17725ee93 (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.cpp12
-rw-r--r--src/server/database/Database/Field.h3
-rw-r--r--src/server/database/Database/MySQLConnection.cpp16
-rw-r--r--src/server/database/Logging/AppenderDB.cpp2
-rw-r--r--src/server/database/Logging/AppenderDB.h6
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;