diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-08-15 02:28:24 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-08-15 02:28:24 +0300 |
commit | 94df0300da69e3dde9bc05f32137dd90c43040e8 (patch) | |
tree | 53b540f7483533a281ffb66e0c39765a8f65508a /src/common/core.h | |
parent | 6795414243a08d47bc111e23c9c0f09218260ccf (diff) | |
parent | d95f3b14d78305ea48834212684c73086555f74f (diff) | |
download | hercules-94df0300da69e3dde9bc05f32137dd90c43040e8.tar.gz hercules-94df0300da69e3dde9bc05f32137dd90c43040e8.tar.bz2 hercules-94df0300da69e3dde9bc05f32137dd90c43040e8.tar.xz hercules-94df0300da69e3dde9bc05f32137dd90c43040e8.zip |
Merge pull request #643 from HerculesWS/hpmfixes_v2
HPM Compatibility Improvements
Diffstat (limited to 'src/common/core.h')
-rw-r--r-- | src/common/core.h | 48 |
1 files changed, 25 insertions, 23 deletions
diff --git a/src/common/core.h b/src/common/core.h index c2a8d9e58..c92bf4fa6 100644 --- a/src/common/core.h +++ b/src/common/core.h @@ -5,7 +5,7 @@ #ifndef COMMON_CORE_H #define COMMON_CORE_H -#include "common/cbasetypes.h" +#include "common/hercules.h" /* so that developers with --enable-debug can raise signals from any section of the code they'd like */ #ifdef DEBUG @@ -28,27 +28,6 @@ enum E_CORE_ST { CORE_ST_LAST }; -#ifdef HERCULES_CORE -extern int arg_c; -extern char **arg_v; - -/// @see E_CORE_ST -extern int runflag; -extern char *SERVER_NAME; - -enum server_types SERVER_TYPE; - -extern void cmdline_args_init_local(void); -extern int do_init(int,char**); -extern void set_server_type(void); -extern void do_abort(void); -extern int do_final(void); - -/// Called when a terminate signal is received. (Ctrl+C pressed) -/// If NULL, runflag is set to CORE_ST_STOP instead. -extern void (*shutdown_callback)(void); -#endif // HERCULES_CORE - /// Options for command line argument handlers. enum cmdline_options { CMDLINE_OPT_NORMAL = 0x0, ///< No special options. @@ -78,10 +57,30 @@ struct cmdline_interface { const char *(*arg_source) (struct CmdlineArgData *arg); }; -struct cmdline_interface *cmdline; +struct core_interface { + int arg_c; + char **arg_v; + /// @see E_CORE_ST + int runflag; + char *server_name; + enum server_types server_type; + + /// Called when a terminate signal is received. (Ctrl+C pressed) + /// If NULL, runflag is set to CORE_ST_STOP instead. + void (*shutdown_callback)(void); +}; #define CMDLINEARG(x) bool cmdline_arg_ ## x (const char *name, const char *params) +#define SERVER_NAME (core->server_name) +#define SERVER_TYPE (core->server_type) + #ifdef HERCULES_CORE +extern void cmdline_args_init_local(void); +extern int do_init(int,char**); +extern void set_server_type(void); +extern void do_abort(void); +extern int do_final(void); + /// Special plugin ID assigned to the Hercules core #define HPM_PID_CORE ((unsigned int)-1) @@ -91,4 +90,7 @@ struct cmdline_interface *cmdline; void cmdline_defaults(void); #endif // HERCULES_CORE +HPShared struct core_interface *core; +HPShared struct cmdline_interface *cmdline; + #endif /* COMMON_CORE_H */ |