WIP: Work done on EventBus

This commit is contained in:
Suraxius committed 2021-03-11 23:20:42 +01:00
1 parent 1dd457d2d2
commit 3be9e64f7e
6 files changed
+67 -22

No files matched your search

+3 -1
View File
@@ -13,7 +13,7 @@ ConfigManager::ConfigManager(Logger& logger, vector<string>& parameters) :
{ {
// move this to a function that can return an error code? // move this to a function that can return an error code?
if ( parameters.size() == 0 ) return; if ( parameters.size() == 0 ) return;
_logger.debug.ln("Interpreting Paremters..."); _logger.debug.ln ("Loading Configuration...");
/* /*
for (unsigned i = 0; i < (numParameters-1); ++i) { for (unsigned i = 0; i < (numParameters-1); ++i) {
@@ -26,6 +26,8 @@ ConfigManager::ConfigManager(Logger& logger, vector<string>& parameters) :
} }
} }
*/ */
_logger.debug.ln ("Configuration successfully parsed");
} }
+26 -4
View File
@@ -4,22 +4,44 @@
namespace Plains { namespace Plains {
namespace Core { namespace Core {
EventBus::EventBus(Logger& logger) : _logger(logger), _thread(&EventBus::run, this) { // EventBus Class
_logger.debug.ln("Hi from EventBus Constructor. Not Theaded");
EventBus::EventBus(Logger& logger) : _logger(logger) {
_logger.debug.ln ("Starting Event Bus...");
_thread = thread(&EventBus::run, this);
} }
EventBus::~EventBus() { EventBus::~EventBus() {
_thread.join(); _thread.join();
// destroy all events in _events vector
_logger.debug.ln ("EventBus has been shut down.");
} }
void EventBus::test() { Event* EventBus::registerEvent(const string eventID) {
_logger.debug << "Testing from within EventBus!" << Logger::commit; _logger.debug << "Registering new Event " << eventID << Logger::commit;
//If event with that id does not exist, create it:
Event* event = new Event(eventID);
_events.push_back(event);
return event;
}
Event* EventBus::getEvent(const string& eventID) {
_logger.debug.ln("Registering new Event...");
//Temporarily return nothing:
return NULL;
} }
void EventBus::run() { void EventBus::run() {
_logger.debug.ln("Hi from EventBus run method! From within Event Thread!"); _logger.debug.ln("Hi from EventBus run method! From within Event Thread!");
} }
// Event Class
Event::Event(const string id) : _id(id) {}
void Event::subscribe(EventSubscriber* es) { _subscribers.push_back(es); }
}} }}
+3 -3
View File
@@ -81,11 +81,11 @@ void Logger::Sink::prefixLine(bool resetToFalse) {
switch ( _level) switch ( _level)
{ {
case DEBUG: lvlString = "DEBUG"; break; case DEBUG: lvlString = "DEBUG"; break;
case INFO: lvlString = "INFO"; break; case INFO: lvlString = "INFO "; break;
case WARN: lvlString = "WARN"; break; case WARN: lvlString = "WARN "; break;
case FATAL: lvlString = "FATAL"; break; case FATAL: lvlString = "FATAL"; break;
} }
*_parent._output << Logger::genTimeStamp() << " [" << lvlString << "] "; *_parent._output << Logger::genTimeStamp() << " " << lvlString << " ";
_lineIsPrefixed = resetToFalse ? false : true; _lineIsPrefixed = resetToFalse ? false : true;
} }
} }
+29 -7
View File
@@ -2,23 +2,45 @@
#define EVENT_BUS_HPP #define EVENT_BUS_HPP
#include "Logger.hpp" #include "Logger.hpp"
#include <thread> #include <thread>
#include <string>
#include <vector>
namespace Plains { namespace Plains {
namespace Core { namespace Core {
using std::thread; using std::thread;
using std::string;
using std::vector;
class EventSubscriber {
public:
virtual void callback() = 0;
};
class Event {
public:
Event(const string _id);
string& getID() const;
void fire();
void subscribe(EventSubscriber* es);
private:
const string _id;
vector<EventSubscriber*> _subscribers;
};
class EventBus { class EventBus {
private:
Logger& _logger;
//thread* _thread
thread _thread;
public: public:
EventBus(Logger& logger); EventBus(Logger& logger);
~EventBus(); ~EventBus();
void test(); Event* registerEvent(string eventID);
Event* getEvent(const string& eventID);
private:
Logger& _logger;
thread _thread;
vector<Event*> _events;
void run(); void run();
}; };
+5 -7
View File
@@ -21,15 +21,13 @@ int main(int args, char **argv) {
arguments.push_back (argv[index]); arguments.push_back (argv[index]);
} }
logger.debug.ln ("Loading Configuration..."); ConfigManager cfg(logger, arguments);
ConfigManager cfg(logger, arguments); EventBus eventBus(logger);
logger.debug.ln ("Start Event Bus...");
EventBus eventBus(logger);
logger.debug.ln ("Start DNS resolver...");
Resolver::Server resolver(logger, eventBus); Resolver::Server resolver(logger, eventBus);
Event* e = eventBus.registerEvent("Test Event");
//e->subscribe()
//Record testrec = ARecord(); //Record testrec = ARecord();
//logger.debug.ln ("Running DNS resolver..."); //logger.debug.ln ("Running DNS resolver...");
//resolver.run(); //resolver.run();
+1
View File
@@ -53,6 +53,7 @@ Server::Server(Logger& logger, EventBus& eventBus)
: _logger(logger), : _logger(logger),
_eventBus(eventBus) _eventBus(eventBus)
{ {
_logger.debug.ln ("Starting Resolver...");
/* /*
_logger.debug << "Testing some stuff..." << Logger::commit; _logger.debug << "Testing some stuff..." << Logger::commit;
_logger.debug << "Message header overall size: " << sizeof(Message::Header) << Logger::commit; _logger.debug << "Message header overall size: " << sizeof(Message::Header) << Logger::commit;