1 /* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
2 
3 #ifndef APIEVENTS_H
4 #define APIEVENTS_H
5 
6 #include "remote/eventqueue.hpp"
7 #include "icinga/checkable.hpp"
8 #include "icinga/host.hpp"
9 
10 namespace icinga
11 {
12 
13 /**
14  * @ingroup icinga
15  */
16 class ApiEvents
17 {
18 public:
19 	static void StaticInitialize();
20 
21 	static void CheckResultHandler(const Checkable::Ptr& checkable, const CheckResult::Ptr& cr, const MessageOrigin::Ptr& origin);
22 	static void StateChangeHandler(const Checkable::Ptr& checkable, const CheckResult::Ptr& cr, StateType type, const MessageOrigin::Ptr& origin);
23 
24 
25 	static void NotificationSentToAllUsersHandler(const Notification::Ptr& notification, const Checkable::Ptr& checkable,
26 		const std::set<User::Ptr>& users, NotificationType type, const CheckResult::Ptr& cr, const String& author,
27 		const String& text, const MessageOrigin::Ptr& origin);
28 
29 	static void FlappingChangedHandler(const Checkable::Ptr& checkable, const MessageOrigin::Ptr& origin);
30 
31 	static void AcknowledgementSetHandler(const Checkable::Ptr& checkable,
32 		const String& author, const String& comment, AcknowledgementType type,
33 		bool notify, bool persistent, double, double expiry, const MessageOrigin::Ptr& origin);
34 	static void AcknowledgementClearedHandler(const Checkable::Ptr& checkable, const String& removedBy, double, const MessageOrigin::Ptr& origin);
35 
36 	static void CommentAddedHandler(const Comment::Ptr& comment);
37 	static void CommentRemovedHandler(const Comment::Ptr& comment);
38 
39 	static void DowntimeAddedHandler(const Downtime::Ptr& downtime);
40 	static void DowntimeRemovedHandler(const Downtime::Ptr& downtime);
41 	static void DowntimeStartedHandler(const Downtime::Ptr& downtime);
42 	static void DowntimeTriggeredHandler(const Downtime::Ptr& downtime);
43 
44 	static void OnActiveChangedHandler(const ConfigObject::Ptr& object, const Value&);
45 	static void OnVersionChangedHandler(const ConfigObject::Ptr& object, const Value&);
46 	static void SendObjectChangeEvent(const ConfigObject::Ptr& object, const EventType& eventType, const String& eventQueue);
47 };
48 
49 }
50 
51 #endif /* APIEVENTS_H */
52