This commit is contained in:
Sven Luethi committed 2021-04-07 15:12:47 +02:00
1 parent 0856548414
commit 5c297f5877
2 files changed
+39 -7

No files matched your search

+4 -1
View File
@@ -39,7 +39,10 @@ Event& EventBus::registerEvent(const string& eventID) {
}
void EventBus::run() {
_logger.warn.ln("Hi from EventBus run method, from within Event Thread!");
while (true) {
std::this_thread::sleep_for(std::chrono::seconds(5));
_logger.warn.ln("EventBus: Looping...");
}
}
// =============================== Event Class ================================
+35 -6
View File
@@ -5,12 +5,20 @@
#include <vector>
#include <string>
#include <exception>
#include <csignal>
using namespace Plains;
using namespace Core;
using std::vector;
using std::string;
void signalHandler( int );
Logger* globalLogger;
ConfigManager* globalConfigManager;
EventBus* globalEventBus;
UI::Server* globalUIServer;
Resolver::Server* globalResolver;
int main(int args, char **argv) {
Logger logger(Logger::DEBUG);
@@ -22,13 +30,23 @@ int main(int args, char **argv) {
arguments.push_back (argv[index]);
}
// Handle signals
signal(SIGINT, signalHandler);
try
{
ConfigManager cfg(logger, arguments);
ConfigManager configManager(logger, arguments);
EventBus eventBus(logger);
UI::Server uiServer(logger, eventBus);
UI::Server uIServer(logger, eventBus);
Resolver::Server resolver(logger, eventBus);
// Pass objects to global scope for signal handler
globalLogger = &logger;
globalConfigManager = &configManager;
globalEventBus = &eventBus;
globalUIServer = &uIServer;
globalResolver = &resolver;
/*
// Some test code below:
class Testi : public EventSubscriber {
@@ -56,10 +74,6 @@ int main(int args, char **argv) {
eventBus.run();
logger.info.ln ("PLAINS successfully started.");
// Run something on main thread...
//std::this_thread::sleep_for(std::chrono::seconds(15));
//std::cin.get();
logger.info.ln ("Shutting down PLAINS. Good Bye!");
}
catch (Exception& e) {
logger.fatal << "Uncaught Exception: " << e.what() << Logger::commit;
@@ -76,3 +90,18 @@ int main(int args, char **argv) {
return 0;
}
void signalHandler( int signalNumber ) {
switch(signalNumber) {
case SIGINT:
globalLogger->warn << "Shutting down Plains..." << Logger::commit;
globalResolver->~Server();
globalUIServer->~Server();
globalEventBus->~EventBus();
globalConfigManager->~ConfigManager();
globalLogger->info.ln ("PLAINS shut down.");
globalLogger->~Logger();
exit(0);
break;
}
}