AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
PreparedStatementTask Class Reference

#include "PreparedStatement.h"

Inheritance diagram for PreparedStatementTask:
SQLOperation

Public Member Functions

 PreparedStatementTask (PreparedStatementBase *stmt, bool async=false)
 
 ~PreparedStatementTask () override
 
bool Execute () override
 
PreparedQueryResultFuture GetFuture ()
 
- Public Member Functions inherited from SQLOperation
 SQLOperation ()=default
 
virtual ~SQLOperation ()=default
 
virtual int call ()
 
virtual void SetConnection (MySQLConnection *con)
 

Protected Attributes

PreparedStatementBasem_stmt
 
bool m_has_result
 
PreparedQueryResultPromisem_result
 

Additional Inherited Members

- Public Attributes inherited from SQLOperation
MySQLConnectionm_conn {nullptr}
 

Detailed Description

Constructor & Destructor Documentation

◆ PreparedStatementTask()

PreparedStatementTask::PreparedStatementTask ( PreparedStatementBase stmt,
bool  async = false 
)
66 :
67 m_stmt(stmt),
68 m_result(nullptr)
69{
70 m_has_result = async; // If it's async, then there's a result
71
72 if (async)
74}
std::promise< PreparedQueryResult > PreparedQueryResultPromise
Definition DatabaseEnvFwd.h:47
bool m_has_result
Definition PreparedStatement.h:180
PreparedQueryResultPromise * m_result
Definition PreparedStatement.h:181
PreparedStatementBase * m_stmt
Definition PreparedStatement.h:179

References m_has_result, and m_result.

◆ ~PreparedStatementTask()

PreparedStatementTask::~PreparedStatementTask ( )
override
77{
78 delete m_stmt;
79
81 delete m_result;
82}

References m_has_result, m_result, and m_stmt.

Member Function Documentation

◆ Execute()

bool PreparedStatementTask::Execute ( )
overridevirtual

Implements SQLOperation.

85{
86 if (m_has_result)
87 {
89 if (!result || !result->GetRowCount())
90 {
91 delete result;
92 m_result->set_value(PreparedQueryResult(nullptr));
93 return false;
94 }
95
96 m_result->set_value(PreparedQueryResult(result));
97 return true;
98 }
99
100 return m_conn->Execute(m_stmt);
101}
std::shared_ptr< PreparedResultSet > PreparedQueryResult
Definition DatabaseEnvFwd.h:45
ResultSet * Query(std::string_view sql)
Definition MySQLConnection.cpp:310
bool Execute(std::string_view sql)
Definition MySQLConnection.cpp:175
Definition QueryResult.h:99
uint64 GetRowCount() const
Definition QueryResult.h:105
MySQLConnection * m_conn
Definition SQLOperation.h:56

References MySQLConnection::Execute(), PreparedResultSet::GetRowCount(), SQLOperation::m_conn, m_has_result, m_result, m_stmt, and MySQLConnection::Query().

◆ GetFuture()

PreparedQueryResultFuture PreparedStatementTask::GetFuture ( )
inline
176{ return m_result->get_future(); }

Referenced by DatabaseWorkerPool< T >::AsyncQuery().

Member Data Documentation

◆ m_has_result

bool PreparedStatementTask::m_has_result
protected

◆ m_result

PreparedQueryResultPromise* PreparedStatementTask::m_result
protected

◆ m_stmt

PreparedStatementBase* PreparedStatementTask::m_stmt
protected

Referenced by Execute(), and ~PreparedStatementTask().


The documentation for this class was generated from the following files: