Legends-of-Azeroth-Pandaria-5.4.8
124 строки · 4.1 Кб
1/*
2* This file is part of the Pandaria 5.4.8 Project. See THANKS file for Copyright information
3*
4* This program is free software; you can redistribute it and/or modify it
5* under the terms of the GNU General Public License as published by the
6* Free Software Foundation; either version 2 of the License, or (at your
7* option) any later version.
8*
9* This program is distributed in the hope that it will be useful, but WITHOUT
10* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12* more details.
13*
14* You should have received a copy of the GNU General Public License along
15* with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#include "LogCommon.h"19#include "Define.h"20#include "SmartEnum.h"21#include <stdexcept>22
23namespace Trinity::Impl::EnumUtilsImpl24{
25
26/************************************************************\
27|* data for enum 'LogLevel' in 'LogCommon.h' auto-generated *|
28\************************************************************/
29template <>30TC_API_EXPORT EnumText EnumUtils<LogLevel>::ToString(LogLevel value)31{
32switch (value)33{34case LOG_LEVEL_DISABLED: return { "LOG_LEVEL_DISABLED", "LOG_LEVEL_DISABLED", "" };35case LOG_LEVEL_TRACE: return { "LOG_LEVEL_TRACE", "LOG_LEVEL_TRACE", "" };36case LOG_LEVEL_DEBUG: return { "LOG_LEVEL_DEBUG", "LOG_LEVEL_DEBUG", "" };37case LOG_LEVEL_INFO: return { "LOG_LEVEL_INFO", "LOG_LEVEL_INFO", "" };38case LOG_LEVEL_WARN: return { "LOG_LEVEL_WARN", "LOG_LEVEL_WARN", "" };39case LOG_LEVEL_ERROR: return { "LOG_LEVEL_ERROR", "LOG_LEVEL_ERROR", "" };40case LOG_LEVEL_FATAL: return { "LOG_LEVEL_FATAL", "LOG_LEVEL_FATAL", "" };41default: throw std::out_of_range("value");42}43}
44
45template <>46TC_API_EXPORT size_t EnumUtils<LogLevel>::Count() { return 7; }47
48template <>49TC_API_EXPORT LogLevel EnumUtils<LogLevel>::FromIndex(size_t index)50{
51switch (index)52{53case 0: return LOG_LEVEL_DISABLED;54case 1: return LOG_LEVEL_TRACE;55case 2: return LOG_LEVEL_DEBUG;56case 3: return LOG_LEVEL_INFO;57case 4: return LOG_LEVEL_WARN;58case 5: return LOG_LEVEL_ERROR;59case 6: return LOG_LEVEL_FATAL;60default: throw std::out_of_range("index");61}62}
63
64template <>65TC_API_EXPORT size_t EnumUtils<LogLevel>::ToIndex(LogLevel value)66{
67switch (value)68{69case LOG_LEVEL_DISABLED: return 0;70case LOG_LEVEL_TRACE: return 1;71case LOG_LEVEL_DEBUG: return 2;72case LOG_LEVEL_INFO: return 3;73case LOG_LEVEL_WARN: return 4;74case LOG_LEVEL_ERROR: return 5;75case LOG_LEVEL_FATAL: return 6;76default: throw std::out_of_range("value");77}78}
79
80/****************************************************************\
81|* data for enum 'AppenderType' in 'LogCommon.h' auto-generated *|
82\****************************************************************/
83template <>84TC_API_EXPORT EnumText EnumUtils<AppenderType>::ToString(AppenderType value)85{
86switch (value)87{88case APPENDER_NONE: return { "APPENDER_NONE", "APPENDER_NONE", "" };89case APPENDER_CONSOLE: return { "APPENDER_CONSOLE", "APPENDER_CONSOLE", "" };90case APPENDER_FILE: return { "APPENDER_FILE", "APPENDER_FILE", "" };91case APPENDER_DB: return { "APPENDER_DB", "APPENDER_DB", "" };92default: throw std::out_of_range("value");93}94}
95
96template <>97TC_API_EXPORT size_t EnumUtils<AppenderType>::Count() { return 4; }98
99template <>100TC_API_EXPORT AppenderType EnumUtils<AppenderType>::FromIndex(size_t index)101{
102switch (index)103{104case 0: return APPENDER_NONE;105case 1: return APPENDER_CONSOLE;106case 2: return APPENDER_FILE;107case 3: return APPENDER_DB;108default: throw std::out_of_range("index");109}110}
111
112template <>113TC_API_EXPORT size_t EnumUtils<AppenderType>::ToIndex(AppenderType value)114{
115switch (value)116{117case APPENDER_NONE: return 0;118case APPENDER_CONSOLE: return 1;119case APPENDER_FILE: return 2;120case APPENDER_DB: return 3;121default: throw std::out_of_range("value");122}123}
124}
125