Feed new event queue with events

This commit is contained in:
Alexander A. Klimov 2019-04-05 17:14:19 +02:00 committed by Michael Friedrich
parent 7688994601
commit 90d9cd9257

View File

@ -35,8 +35,9 @@ void ApiEvents::StaticInitialize()
void ApiEvents::CheckResultHandler(const Checkable::Ptr& checkable, const CheckResult::Ptr& cr, const MessageOrigin::Ptr& origin)
{
std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("CheckResult");
auto inboxes (EventsRouter::GetInstance().GetInboxes(EventType::CheckResult));
if (queues.empty())
if (queues.empty() && !inboxes)
return;
Log(LogDebug, "ApiEvents", "Processing event type 'CheckResult'.");
@ -58,13 +59,16 @@ void ApiEvents::CheckResultHandler(const Checkable::Ptr& checkable, const CheckR
for (const EventQueue::Ptr& queue : queues) {
queue->ProcessEvent(result);
}
inboxes.Push(std::move(result));
}
void ApiEvents::StateChangeHandler(const Checkable::Ptr& checkable, const CheckResult::Ptr& cr, StateType type, const MessageOrigin::Ptr& origin)
{
std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("StateChange");
auto inboxes (EventsRouter::GetInstance().GetInboxes(EventType::StateChange));
if (queues.empty())
if (queues.empty() && !inboxes)
return;
Log(LogDebug, "ApiEvents", "Processing event type 'StateChange'.");
@ -88,6 +92,8 @@ void ApiEvents::StateChangeHandler(const Checkable::Ptr& checkable, const CheckR
for (const EventQueue::Ptr& queue : queues) {
queue->ProcessEvent(result);
}
inboxes.Push(std::move(result));
}
void ApiEvents::NotificationSentToAllUsersHandler(const Notification::Ptr& notification,
@ -95,8 +101,9 @@ void ApiEvents::NotificationSentToAllUsersHandler(const Notification::Ptr& notif
const CheckResult::Ptr& cr, const String& author, const String& text, const MessageOrigin::Ptr& origin)
{
std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("Notification");
auto inboxes (EventsRouter::GetInstance().GetInboxes(EventType::Notification));
if (queues.empty())
if (queues.empty() && !inboxes)
return;
Log(LogDebug, "ApiEvents", "Processing event type 'Notification'.");
@ -133,13 +140,16 @@ void ApiEvents::NotificationSentToAllUsersHandler(const Notification::Ptr& notif
for (const EventQueue::Ptr& queue : queues) {
queue->ProcessEvent(result);
}
inboxes.Push(std::move(result));
}
void ApiEvents::FlappingChangedHandler(const Checkable::Ptr& checkable, const MessageOrigin::Ptr& origin)
{
std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("Flapping");
auto inboxes (EventsRouter::GetInstance().GetInboxes(EventType::Flapping));
if (queues.empty())
if (queues.empty() && !inboxes)
return;
Log(LogDebug, "ApiEvents", "Processing event type 'Flapping'.");
@ -166,6 +176,8 @@ void ApiEvents::FlappingChangedHandler(const Checkable::Ptr& checkable, const Me
for (const EventQueue::Ptr& queue : queues) {
queue->ProcessEvent(result);
}
inboxes.Push(std::move(result));
}
void ApiEvents::AcknowledgementSetHandler(const Checkable::Ptr& checkable,
@ -173,8 +185,9 @@ void ApiEvents::AcknowledgementSetHandler(const Checkable::Ptr& checkable,
bool notify, bool persistent, double expiry, const MessageOrigin::Ptr& origin)
{
std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("AcknowledgementSet");
auto inboxes (EventsRouter::GetInstance().GetInboxes(EventType::AcknowledgementSet));
if (queues.empty())
if (queues.empty() && !inboxes)
return;
Log(LogDebug, "ApiEvents", "Processing event type 'AcknowledgementSet'.");
@ -204,13 +217,16 @@ void ApiEvents::AcknowledgementSetHandler(const Checkable::Ptr& checkable,
for (const EventQueue::Ptr& queue : queues) {
queue->ProcessEvent(result);
}
inboxes.Push(std::move(result));
}
void ApiEvents::AcknowledgementClearedHandler(const Checkable::Ptr& checkable, const MessageOrigin::Ptr& origin)
{
std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("AcknowledgementCleared");
auto inboxes (EventsRouter::GetInstance().GetInboxes(EventType::AcknowledgementCleared));
if (queues.empty())
if (queues.empty() && !inboxes)
return;
Log(LogDebug, "ApiEvents", "Processing event type 'AcknowledgementCleared'.");
@ -235,13 +251,16 @@ void ApiEvents::AcknowledgementClearedHandler(const Checkable::Ptr& checkable, c
}
result->Set("acknowledgement_type", AcknowledgementNone);
inboxes.Push(std::move(result));
}
void ApiEvents::CommentAddedHandler(const Comment::Ptr& comment)
{
std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("CommentAdded");
auto inboxes (EventsRouter::GetInstance().GetInboxes(EventType::CommentAdded));
if (queues.empty())
if (queues.empty() && !inboxes)
return;
Log(LogDebug, "ApiEvents", "Processing event type 'CommentAdded'.");
@ -255,13 +274,16 @@ void ApiEvents::CommentAddedHandler(const Comment::Ptr& comment)
for (const EventQueue::Ptr& queue : queues) {
queue->ProcessEvent(result);
}
inboxes.Push(std::move(result));
}
void ApiEvents::CommentRemovedHandler(const Comment::Ptr& comment)
{
std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("CommentRemoved");
auto inboxes (EventsRouter::GetInstance().GetInboxes(EventType::CommentRemoved));
if (queues.empty())
if (queues.empty() && !inboxes)
return;
Log(LogDebug, "ApiEvents", "Processing event type 'CommentRemoved'.");
@ -275,13 +297,16 @@ void ApiEvents::CommentRemovedHandler(const Comment::Ptr& comment)
for (const EventQueue::Ptr& queue : queues) {
queue->ProcessEvent(result);
}
inboxes.Push(std::move(result));
}
void ApiEvents::DowntimeAddedHandler(const Downtime::Ptr& downtime)
{
std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("DowntimeAdded");
auto inboxes (EventsRouter::GetInstance().GetInboxes(EventType::DowntimeAdded));
if (queues.empty())
if (queues.empty() && !inboxes)
return;
Log(LogDebug, "ApiEvents", "Processing event type 'DowntimeAdded'.");
@ -295,13 +320,16 @@ void ApiEvents::DowntimeAddedHandler(const Downtime::Ptr& downtime)
for (const EventQueue::Ptr& queue : queues) {
queue->ProcessEvent(result);
}
inboxes.Push(std::move(result));
}
void ApiEvents::DowntimeRemovedHandler(const Downtime::Ptr& downtime)
{
std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("DowntimeRemoved");
auto inboxes (EventsRouter::GetInstance().GetInboxes(EventType::DowntimeRemoved));
if (queues.empty())
if (queues.empty() && !inboxes)
return;
Log(LogDebug, "ApiEvents", "Processing event type 'DowntimeRemoved'.");
@ -315,13 +343,16 @@ void ApiEvents::DowntimeRemovedHandler(const Downtime::Ptr& downtime)
for (const EventQueue::Ptr& queue : queues) {
queue->ProcessEvent(result);
}
inboxes.Push(std::move(result));
}
void ApiEvents::DowntimeStartedHandler(const Downtime::Ptr& downtime)
{
std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("DowntimeStarted");
auto inboxes (EventsRouter::GetInstance().GetInboxes(EventType::DowntimeStarted));
if (queues.empty())
if (queues.empty() && !inboxes)
return;
Log(LogDebug, "ApiEvents", "Processing event type 'DowntimeStarted'.");
@ -335,13 +366,16 @@ void ApiEvents::DowntimeStartedHandler(const Downtime::Ptr& downtime)
for (const EventQueue::Ptr& queue : queues) {
queue->ProcessEvent(result);
}
inboxes.Push(std::move(result));
}
void ApiEvents::DowntimeTriggeredHandler(const Downtime::Ptr& downtime)
{
std::vector<EventQueue::Ptr> queues = EventQueue::GetQueuesForType("DowntimeTriggered");
auto inboxes (EventsRouter::GetInstance().GetInboxes(EventType::DowntimeTriggered));
if (queues.empty())
if (queues.empty() && !inboxes)
return;
Log(LogDebug, "ApiEvents", "Processing event type 'DowntimeTriggered'.");
@ -355,4 +389,6 @@ void ApiEvents::DowntimeTriggeredHandler(const Downtime::Ptr& downtime)
for (const EventQueue::Ptr& queue : queues) {
queue->ProcessEvent(result);
}
inboxes.Push(std::move(result));
}