mirror of
https://github.com/Relintai/rcpp_framework.git
synced 2024-11-14 04:57:21 +01:00
59 lines
1.1 KiB
C++
59 lines
1.1 KiB
C++
#include "platform_initializer.h"
|
|
|
|
#include "core/error_macros.h"
|
|
|
|
#if PLATFORM_LINUX
|
|
#include "linux/crash_handler_linux.h"
|
|
#include "linux/platform_linux.h"
|
|
#endif
|
|
|
|
void PlatformInitializer::arg_setup(int argc, char **argv, char **envp) {
|
|
if (_platform) {
|
|
_platform->arg_setup(argc, argv, envp);
|
|
}
|
|
}
|
|
|
|
void PlatformInitializer::allocate_platform() {
|
|
ERR_FAIL_COND(_platform);
|
|
|
|
#if PLATFORM_LINUX
|
|
_platform = new PlatformLinux();
|
|
#endif
|
|
}
|
|
|
|
void PlatformInitializer::free_platform() {
|
|
if (_platform) {
|
|
delete _platform;
|
|
_platform = nullptr;
|
|
}
|
|
}
|
|
|
|
void PlatformInitializer::allocate_crash_handler() {
|
|
ERR_FAIL_COND(_crash_handler);
|
|
|
|
#if PLATFORM_LINUX
|
|
_crash_handler = new CrashHandlerLinux();
|
|
_crash_handler->enable();
|
|
#endif
|
|
}
|
|
|
|
void PlatformInitializer::free_crash_handler() {
|
|
if (_crash_handler) {
|
|
delete _crash_handler;
|
|
_crash_handler = nullptr;
|
|
}
|
|
}
|
|
|
|
void PlatformInitializer::allocate_all() {
|
|
allocate_platform();
|
|
allocate_crash_handler();
|
|
}
|
|
|
|
void PlatformInitializer::free_all() {
|
|
free_platform();
|
|
free_crash_handler();
|
|
}
|
|
|
|
Platform *PlatformInitializer::_platform = nullptr;
|
|
CrashHandler *PlatformInitializer::_crash_handler = nullptr;
|