Core/Database: Replace DatabaseWorker with asio io_context

This commit is contained in:
Shauren
2023-12-15 12:06:59 +01:00
parent ee95a5e00f
commit d958bfd0f3
19 changed files with 236 additions and 402 deletions

View File

@@ -18,41 +18,21 @@
#include "AdhocStatement.h"
#include "MySQLConnection.h"
#include "QueryResult.h"
#include <cstdlib>
#include <cstring>
/*! Basic, ad-hoc queries. */
BasicStatementTask::BasicStatementTask(char const* sql, bool async) :
m_result(nullptr)
QueryResult BasicStatementTask::Query(MySQLConnection* conn, char const* sql)
{
m_sql = strdup(sql);
m_has_result = async; // If the operation is async, then there's a result
if (async)
m_result = new QueryResultPromise();
}
BasicStatementTask::~BasicStatementTask()
{
free((void*)m_sql);
if (m_has_result && m_result != nullptr)
delete m_result;
}
bool BasicStatementTask::Execute()
{
if (m_has_result)
ResultSet* result = conn->Query(sql);
if (!result || !result->GetRowCount() || !result->NextRow())
{
ResultSet* result = m_conn->Query(m_sql);
if (!result || !result->GetRowCount() || !result->NextRow())
{
delete result;
m_result->set_value(QueryResult(nullptr));
return false;
}
m_result->set_value(QueryResult(result));
return true;
delete result;
result = nullptr;
}
return m_conn->Execute(m_sql);
return QueryResult(result);
}
bool BasicStatementTask::Execute(MySQLConnection* conn, char const* sql)
{
return conn->Execute(sql);
}