1
Files
lecture-operating-system-de…/c_os/user/event/KeyEventManager.cc
2022-07-17 21:02:33 +02:00

22 lines
794 B
C++

#include "user/event/KeyEventManager.h"
#include "kernel/Globals.h"
void KeyEventManager::subscribe(KeyEventListener& listener) {
log << DEBUG << "Subscribe, Thread ID: " << dec << listener.thread.tid << endl;
this->listeners.insert_last(&listener);
}
void KeyEventManager::unsubscribe(KeyEventListener& listener) {
log << DEBUG << "Unsubscribe, Thread ID: " << dec << listener.thread.tid << endl;
this->listeners.remove(&listener);
}
void KeyEventManager::broadcast(char c) {
log << TRACE << "Beginning Broadcast" << endl;
for (KeyEventListener* listener : this->listeners) {
log << TRACE << "Broadcasting " << c << " to Thread ID: " << dec << listener->thread.tid << endl;
listener->trigger(c);
scheduler.deblock(&listener->thread);
}
}