EvEmu  0.8.4
11 September 2021
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
eve-core.h
Go to the documentation of this file.
1 /*
2  ------------------------------------------------------------------------------------
3  LICENSE:
4  ------------------------------------------------------------------------------------
5  This file is part of EVEmu: EVE Online Server Emulator
6  Copyright 2006 - 2021 The EVEmu Team
7  For the latest information visit https://evemu.dev
8  ------------------------------------------------------------------------------------
9  This program is free software; you can redistribute it and/or modify it under
10  the terms of the GNU Lesser General Public License as published by the Free Software
11  Foundation; either version 2 of the License, or (at your option) any later
12  version.
13 
14  This program is distributed in the hope that it will be useful, but WITHOUT
15  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
16  FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
17 
18  You should have received a copy of the GNU Lesser General Public License along with
19  this program; if not, write to the Free Software Foundation, Inc., 59 Temple
20  Place - Suite 330, Boston, MA 02111-1307, USA, or go to
21  http://www.gnu.org/copyleft/lesser.txt.
22  ------------------------------------------------------------------------------------
23  Author: Aim, Captnoord, Zhur, Bloody.Rabbit
24  Updates: Allan
25 */
26 
27 #ifndef __EVE_CORE_H__INCL__
28 #define __EVE_CORE_H__INCL__
29 
30 /*************************************************************************/
31 /* Header configuration */
32 /*************************************************************************/
33 #ifdef HAVE_CONFIG_H
34 # include "config.h"
35 #endif /* HAVE_CONFIG_H */
36 
37 #ifdef HAVE_CRTDBG_H
38 # define _CRTDBG_MAP_ALLOC 1
39 #endif /* HAVE_CRTDBG_H */
40 
41 #ifdef HAVE_INTTYPES_H
42 // This requires some ugly tinkering because inttypes.h
43 // is primarily a C header.
44 // Pretend to be C99-compliant
45 # define __STDC_VERSION__ 199901L
46 // We must "explicitly request" the format strings
47 # define __STDC_FORMAT_MACROS 1
48 #endif /* HAVE_INTTYPES_H */
49 
50 // Disable auto-linking of any Boost libraries
51 #define BOOST_ALL_NO_LIB 1
52 
53 /*************************************************************************/
54 /* Includes */
55 /*************************************************************************/
56 // Standard library includes
57 #include <cassert>
58 #include <cerrno>
59 #include <cfloat>
60 #include <climits>
61 #include <cmath>
62 #include <csignal>
63 #include <cstdarg>
64 #include <cstdio>
65 #include <cstdlib>
66 #include <cstring>
67 #include <ctime>
68 
69 // Standard Template Library includes
70 #include <algorithm>
71 #include <iostream>
72 #include <list>
73 #include <map>
74 #include <memory>
75 #include <new>
76 #include <queue>
77 #include <set>
78 #include <sstream>
79 #include <stack>
80 #include <string>
81 #include <vector>
82 #include <thread>
83 #include <chrono>
84 #include <functional>
85 #include <tuple>
86 #include <unordered_map>
87 #include <unordered_set>
88 
89 #ifdef HAVE_CRTDBG_H
90 # include <crtdbg.h>
91 #endif /* HAVE_CRTDBG_H */
92 
93 #ifdef HAVE_INTTYPES_H
94 # include <inttypes.h>
95 #endif /* HAVE_INTTYPES_H */
96 
97 #ifdef HAVE_SYS_STAT_H
98 # include <sys/stat.h>
99 #else /* !HAVE_SYS_STAT_H */
100 # include <io.h>
101 #endif /* !HAVE_SYS_STAT_H */
102 
103 #ifdef HAVE_SYS_TIME_H
104 # include <sys/time.h>
105 #else /* !HAVE_SYS_TIME_H */
106 # include <sys/timeb.h>
107 #endif /* !HAVE_SYS_TIME_H */
108 
109 #ifdef HAVE_VLD_H
110 # include <vld.h>
111 #endif /* HAVE_VLD_H */
112 
113 /* *nix includes */
114 #include <dirent.h>
115 #include <pthread.h>
116 #include <fcntl.h>
117 #include <netdb.h>
118 #include <arpa/inet.h>
119 #include <netinet/in.h>
120 #include <sys/socket.h>
121 
122 #ifndef HAVE_ASINH
123 # include <boost/math/special_functions.hpp>
124 #endif /* !HAVE_ASINH */
125 
126 /************************************************************************/
127 /* Dependencies */
128 /************************************************************************/
129 // Boost.Asio
130 #include <boost/asio.hpp>
131 // Gangsta
132 #include <GaPreReqs.h>
133 #include <GaMath.h>
134 #include <GaTypes.h>
135 // MySQL
136 #include <mysql.h>
137 #include <mysqld_error.h>
138 #include <errmsg.h>
139 // TinyXML
140 #include <tinyxml.h>
141 // zlib
142 #include <zlib.h>
143 
144 /*************************************************************************/
145 /* MMGR - Memory Manager */
146 /* Memory managing & tracking software */
147 /* This code is designed to track and log memory leaks */
148 /*************************************************************************/
149 /* note...this code causes free() errors in xmlpacketgenerator.o */
150 //#include "memory/mmgr.h"
151 
152 /* { backtrace, backtrace_symbols, backtrace_symbols_fd } header file.
153  * include this for DEBUG CODE ONLY!!
154  */
155 #include "execinfo.h"
156 
157 /************************************************************************/
158 /* Project-specific includes for files using ONLY eve-core.h */
159 /************************************************************************/
160 // compatability defs (evemu unique defs)
161 #include "eve-compat.h"
162 // memory
163 #include "memory/SafeMem.h"
164 // utils
165 #include "utils/FastInt.h"
166 
167 
168 #endif /* !__EVE_CORE_H__INCL__ */