WIP: somethings wrong.. #19
@ -1,4 +1,4 @@
|
||||
#include "../events/Event.h"
|
||||
#include "Event.h"
|
||||
namespace EVENT {
|
||||
EventId_t getEventId(Event event) {
|
||||
return (event & 0xFFFF);
|
||||
|
@ -1,10 +1,10 @@
|
||||
#ifndef FRAMEWORK_EVENTS_EVENT_H_
|
||||
#define FRAMEWORK_EVENTS_EVENT_H_
|
||||
#ifndef EVENTOBJECT_EVENT_H_
|
||||
#define EVENTOBJECT_EVENT_H_
|
||||
|
||||
#include <cstdint>
|
||||
#include "../events/fwSubsystemIdRanges.h"
|
||||
#include <stdint.h>
|
||||
#include "fwSubsystemIdRanges.h"
|
||||
//could be move to more suitable location
|
||||
#include <subsystemIdRanges.h>
|
||||
#include <config/tmtc/subsystemIdRanges.h>
|
||||
|
||||
typedef uint16_t EventId_t;
|
||||
typedef uint8_t EventSeverity_t;
|
||||
@ -21,7 +21,6 @@ EventSeverity_t getSeverity(Event event);
|
||||
Event makeEvent(EventId_t eventId, EventSeverity_t eventSeverity);
|
||||
|
||||
}
|
||||
|
||||
namespace SEVERITY {
|
||||
static const EventSeverity_t INFO = 1;
|
||||
static const EventSeverity_t LOW = 2;
|
||||
@ -42,4 +41,4 @@ namespace SEVERITY {
|
||||
// static const EventSeverity_t HIGH = 4;
|
||||
//};
|
||||
|
||||
#endif /* FRAMEWORK_EVENTS_EVENT_H_ */
|
||||
#endif /* EVENTOBJECT_EVENT_H_ */
|
||||
|
@ -1,5 +1,5 @@
|
||||
#include "../events/EventManager.h"
|
||||
#include "../events/EventMessage.h"
|
||||
#include "EventManager.h"
|
||||
#include "EventMessage.h"
|
||||
#include "../serviceinterface/ServiceInterfaceStream.h"
|
||||
#include "../ipc/QueueFactory.h"
|
||||
#include "../ipc/MutexFactory.h"
|
||||
@ -8,16 +8,13 @@
|
||||
const uint16_t EventManager::POOL_SIZES[N_POOLS] = {
|
||||
sizeof(EventMatchTree::Node), sizeof(EventIdRangeMatcher),
|
||||
sizeof(ReporterRangeMatcher) };
|
||||
// If one checks registerListener calls, there are around 40 (to max 50)
|
||||
// objects registering for certain events.
|
||||
// Each listener requires 1 or 2 EventIdMatcher and 1 or 2 ReportRangeMatcher.
|
||||
// So a good guess is 75 to a max of 100 pools required for each, which fits well.
|
||||
// SHOULDDO: Shouldn't this be in the config folder and passed via ctor?
|
||||
//If one checks registerListener calls, there are around 40 (to max 50) objects registering for certain events.
|
||||
//Each listener requires 1 or 2 EventIdMatcher and 1 or 2 ReportRangeMatcher. So a good guess is 75 to a max of 100 pools required for each, which fits well.
|
||||
const uint16_t EventManager::N_ELEMENTS[N_POOLS] = { 240, 120, 120 };
|
||||
|
||||
EventManager::EventManager(object_id_t setObjectId) :
|
||||
SystemObject(setObjectId),
|
||||
factoryBackend(0, POOL_SIZES, N_ELEMENTS, false, true) {
|
||||
SystemObject(setObjectId), eventReportQueue(NULL), mutex(NULL), factoryBackend(
|
||||
0, POOL_SIZES, N_ELEMENTS, false, true) {
|
||||
mutex = MutexFactory::instance()->createMutex();
|
||||
eventReportQueue = QueueFactory::instance()->createMessageQueue(
|
||||
MAX_EVENTS_PER_CYCLE, EventMessage::EVENT_MESSAGE_SIZE);
|
||||
@ -52,7 +49,7 @@ void EventManager::notifyListeners(EventMessage* message) {
|
||||
for (auto iter = listenerList.begin(); iter != listenerList.end(); ++iter) {
|
||||
if (iter->second.match(message)) {
|
||||
MessageQueueSenderIF::sendMessage(iter->first, message,
|
||||
message->getSender());
|
||||
message->getSender());
|
||||
}
|
||||
}
|
||||
unlockMutex();
|
||||
@ -133,23 +130,16 @@ void EventManager::printEvent(EventMessage* message) {
|
||||
break;
|
||||
default:
|
||||
string = translateObject(message->getReporter());
|
||||
sif::debug << "EventManager: ";
|
||||
sif::error << "EVENT: ";
|
||||
if (string != 0) {
|
||||
sif::debug << string;
|
||||
sif::error << string;
|
||||
} else {
|
||||
sif::error << "0x" << std::hex << message->getReporter() << std::dec;
|
||||
}
|
||||
else {
|
||||
sif::debug << "0x" << std::hex << message->getReporter() << std::dec;
|
||||
}
|
||||
sif::debug << " reported " << translateEvents(message->getEvent())
|
||||
<< " (" << std::dec << message->getEventId() << ") "
|
||||
<< std::endl;
|
||||
|
||||
sif::debug << std::hex << "P1 Hex: 0x" << message->getParameter1()
|
||||
<< ", P1 Dec: " << std::dec << message->getParameter1()
|
||||
<< std::endl;
|
||||
sif::debug << std::hex << "P2 Hex: 0x" << message->getParameter2()
|
||||
<< ", P2 Dec: " << std::dec << message->getParameter2()
|
||||
<< std::endl;
|
||||
sif::error << " reported " << translateEvents(message->getEvent()) << " ("
|
||||
<< std::dec << message->getEventId() << std::hex << ") P1: 0x"
|
||||
<< message->getParameter1() << " P2: 0x"
|
||||
<< message->getParameter2() << std::dec << std::endl;
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
#ifndef EVENTMANAGER_H_
|
||||
#define EVENTMANAGER_H_
|
||||
|
||||
#include "../events/eventmatching/EventMatchTree.h"
|
||||
#include "../events/EventManagerIF.h"
|
||||
#include "eventmatching/EventMatchTree.h"
|
||||
#include "EventManagerIF.h"
|
||||
#include "../objectmanager/SystemObject.h"
|
||||
#include "../storagemanager/LocalPool.h"
|
||||
#include "../tasks/ExecutableObjectIF.h"
|
||||
@ -36,11 +36,11 @@ public:
|
||||
ReturnValue_t performOperation(uint8_t opCode);
|
||||
protected:
|
||||
|
||||
MessageQueueIF* eventReportQueue = nullptr;
|
||||
MessageQueueIF* eventReportQueue;
|
||||
|
||||
std::map<MessageQueueId_t, EventMatchTree> listenerList;
|
||||
|
||||
MutexIF* mutex = nullptr;
|
||||
MutexIF* mutex;
|
||||
|
||||
static const uint8_t N_POOLS = 3;
|
||||
LocalPool<N_POOLS> factoryBackend;
|
||||
|
@ -1,8 +1,8 @@
|
||||
#ifndef EVENTMANAGERIF_H_
|
||||
#define EVENTMANAGERIF_H_
|
||||
|
||||
#include "../events/eventmatching/eventmatching.h"
|
||||
#include "../events/EventMessage.h"
|
||||
#include "eventmatching/eventmatching.h"
|
||||
#include "EventMessage.h"
|
||||
#include "../objectmanager/ObjectManagerIF.h"
|
||||
#include "../ipc/MessageQueueSenderIF.h"
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "../events/EventMessage.h"
|
||||
#include "EventMessage.h"
|
||||
#include <cstring>
|
||||
|
||||
EventMessage::EventMessage() {
|
||||
|
@ -1,7 +1,7 @@
|
||||
#ifndef EVENTMESSAGE_H_
|
||||
#define EVENTMESSAGE_H_
|
||||
|
||||
#include "../events/Event.h"
|
||||
#include "Event.h"
|
||||
#include "../ipc/MessageQueueMessage.h"
|
||||
#include "../objectmanager/ObjectManagerIF.h"
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
#ifndef FRAMEWORK_EVENTS_EVENTREPORTINGPROXYIF_H_
|
||||
#define FRAMEWORK_EVENTS_EVENTREPORTINGPROXYIF_H_
|
||||
|
||||
#include "../events/Event.h"
|
||||
#include "Event.h"
|
||||
|
||||
|
||||
class EventReportingProxyIF {
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "../../events/eventmatching/EventIdRangeMatcher.h"
|
||||
#include "EventIdRangeMatcher.h"
|
||||
|
||||
EventIdRangeMatcher::EventIdRangeMatcher(EventId_t lower, EventId_t upper,
|
||||
bool inverted) : EventRangeMatcherBase<EventId_t>(lower, upper, inverted) {
|
||||
|
@ -1,7 +1,7 @@
|
||||
#ifndef FRAMEWORK_EVENTS_EVENTMATCHING_EVENTIDRANGEMATCHER_H_
|
||||
#define FRAMEWORK_EVENTS_EVENTMATCHING_EVENTIDRANGEMATCHER_H_
|
||||
|
||||
#include "../../events/eventmatching/EventRangeMatcherBase.h"
|
||||
#include "EventRangeMatcherBase.h"
|
||||
|
||||
class EventIdRangeMatcher: public EventRangeMatcherBase<EventId_t> {
|
||||
public:
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include "../../events/eventmatching/EventIdRangeMatcher.h"
|
||||
#include "../../events/eventmatching/EventMatchTree.h"
|
||||
#include "../../events/eventmatching/ReporterRangeMatcher.h"
|
||||
#include "../../events/eventmatching/SeverityRangeMatcher.h"
|
||||
#include "EventIdRangeMatcher.h"
|
||||
#include "EventMatchTree.h"
|
||||
#include "ReporterRangeMatcher.h"
|
||||
#include "SeverityRangeMatcher.h"
|
||||
|
||||
EventMatchTree::EventMatchTree(StorageManagerIF* storageBackend,
|
||||
bool invertedMatch) :
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "../../events/eventmatching/ReporterRangeMatcher.h"
|
||||
#include "ReporterRangeMatcher.h"
|
||||
|
||||
ReporterRangeMatcher::ReporterRangeMatcher(object_id_t lower, object_id_t upper,
|
||||
bool inverted) : EventRangeMatcherBase<object_id_t>(lower, upper, inverted) {
|
||||
|
@ -1,7 +1,7 @@
|
||||
#ifndef FRAMEWORK_EVENTS_EVENTMATCHING_REPORTERRANGEMATCHER_H_
|
||||
#define FRAMEWORK_EVENTS_EVENTMATCHING_REPORTERRANGEMATCHER_H_
|
||||
|
||||
#include "../../events/eventmatching/EventRangeMatcherBase.h"
|
||||
#include "EventRangeMatcherBase.h"
|
||||
|
||||
class ReporterRangeMatcher: public EventRangeMatcherBase<object_id_t> {
|
||||
public:
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "../../events/eventmatching/SeverityRangeMatcher.h"
|
||||
#include "SeverityRangeMatcher.h"
|
||||
#include "../../events/EventMessage.h"
|
||||
#include "../../serialize/SerializeAdapter.h"
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
#ifndef FRAMEWORK_EVENTS_EVENTMATCHING_SEVERITYRANGEMATCHER_H_
|
||||
#define FRAMEWORK_EVENTS_EVENTMATCHING_SEVERITYRANGEMATCHER_H_
|
||||
|
||||
#include "../../events/eventmatching/EventRangeMatcherBase.h"
|
||||
#include "EventRangeMatcherBase.h"
|
||||
|
||||
class SeverityRangeMatcher: public EventRangeMatcherBase<EventSeverity_t> {
|
||||
public:
|
||||
|
@ -1,10 +1,10 @@
|
||||
#ifndef EVENTMATCHING_H_
|
||||
#define EVENTMATCHING_H_
|
||||
|
||||
#include "../../events/eventmatching/EventIdRangeMatcher.h"
|
||||
#include "../../events/eventmatching/EventMatchTree.h"
|
||||
#include "../../events/eventmatching/ReporterRangeMatcher.h"
|
||||
#include "../../events/eventmatching/SeverityRangeMatcher.h"
|
||||
#include "EventIdRangeMatcher.h"
|
||||
#include "EventMatchTree.h"
|
||||
#include "ReporterRangeMatcher.h"
|
||||
#include "SeverityRangeMatcher.h"
|
||||
|
||||
|
||||
#endif /* EVENTMATCHING_H_ */
|
||||
|
Loading…
Reference in New Issue
Block a user