Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
DatabaseWorker.cpp
Go to the documentation of this file.
1
/*
2
* This file is part of Project SkyFire https://www.projectskyfire.org.
3
* See LICENSE.md file for Copyright information
4
*/
5
6
#include "
DatabaseEnv.h
"
7
#include "
DatabaseWorker.h
"
8
#include "
MySQLConnection.h
"
9
#include "
MySQLThreading.h
"
10
#include "
SQLOperation.h
"
11
#include "
Threading/BoostAsioThread.h
"
12
13
#include <stdexcept>
14
15
DatabaseWorker::DatabaseWorker
(
Skyfire::DatabaseQueue
* new_queue, MySQLConnection* con) :
16
m_queue
(new_queue),
17
m_conn
(con)
18
{
19
if
(!
m_queue
|| !
m_conn
)
20
return
;
21
22
m_thread
.reset(
new
Skyfire::Asio::IoContextThread
);
23
24
if
(
m_thread
->Start(
m_queue
->GetExecutor(),
25
[
this
]
26
{
27
m_queue->BindConnection(m_conn);
28
},
29
[
this
]
30
{
31
m_queue->ClearConnection();
32
}) == -1)
33
throw
std::runtime_error(
"Failed to start database worker thread"
);
34
}
35
36
DatabaseWorker::~DatabaseWorker
()
37
{
38
wait
();
39
}
40
41
int
DatabaseWorker::svc
()
42
{
43
if
(!
m_queue
)
44
return
-1;
45
46
return
m_queue
->run(
m_conn
);
47
}
48
49
int
DatabaseWorker::wait
()
50
{
51
if
(!
m_thread
)
52
return
0;
53
54
return
m_thread
->Join();
55
}
BoostAsioThread.h
DatabaseEnv.h
DatabaseWorker.h
MySQLConnection.h
MySQLThreading.h
SQLOperation.h
DatabaseWorker::~DatabaseWorker
~DatabaseWorker()
Definition
DatabaseWorker.cpp:36
DatabaseWorker::m_conn
MySQLConnection * m_conn
Definition
DatabaseWorker.h:34
DatabaseWorker::m_queue
Skyfire::DatabaseQueue * m_queue
Definition
DatabaseWorker.h:33
DatabaseWorker::m_thread
std::unique_ptr< Skyfire::Asio::IoContextThread > m_thread
Definition
DatabaseWorker.h:35
DatabaseWorker::svc
int svc()
Definition
DatabaseWorker.cpp:41
DatabaseWorker::wait
int wait()
Definition
DatabaseWorker.cpp:49
DatabaseWorker::DatabaseWorker
DatabaseWorker(Skyfire::DatabaseQueue *new_queue, MySQLConnection *con)
Definition
DatabaseWorker.cpp:15
Skyfire::Asio::IoContextThread
Definition
BoostAsioThread.h:21
Skyfire::DatabaseQueue
Definition
DatabaseQueue.h:23
src
server
shared
Database
DatabaseWorker.cpp
Generated on
for Project SkyFire Core by
1.17.0