summaryrefslogtreecommitdiff
path: root/src/server/database/Database/MySQLThreading.h
blob: 29f1a0740535096e213a64dfcb6f22fba21932a5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/*
 * Copyright (C) 2016+     AzerothCore <www.azerothcore.org>
 * Copyright (C) 2008-2016 TrinityCore <http://www.trinitycore.org/>
 * Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
 */

#ifndef _MYSQLTHREADING_H
#define _MYSQLTHREADING_H

#include "Log.h"

class MySQL
{
public:
    /*! Create a thread on the MySQL server to mirrior the calling thread,
        initializes thread-specific variables and allows thread-specific
        operations without concurrence from other threads.
        This should only be called if multiple core threads are running
        on the same MySQL connection. Seperate MySQL connections implicitly
        create a mirror thread.
    */
    static void Thread_Init()
    {
        mysql_thread_init();
    }

    /*! Shuts down MySQL thread and frees resources, should only be called
        when we terminate. MySQL threads and connections are not configurable
        during runtime.
    */
    static void Thread_End()
    {
        mysql_thread_end();
    }

    static void Library_Init()
    {
        mysql_library_init(-1, nullptr, nullptr);
    }

    static void Library_End()
    {
        mysql_library_end();
    }
};

#endif