diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 12:34:54 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 12:34:54 +0000 |
commit | 0915b3ef56dfac3113cce55a59a5765dc94976be (patch) | |
tree | a8fea11d50b4f083e1bf0f90025ece7f0824784a /lib/icinga/comment.hpp | |
parent | Initial commit. (diff) | |
download | icinga2-upstream.tar.xz icinga2-upstream.zip |
Adding upstream version 2.13.6.upstream/2.13.6upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'lib/icinga/comment.hpp')
-rw-r--r-- | lib/icinga/comment.hpp | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/lib/icinga/comment.hpp b/lib/icinga/comment.hpp new file mode 100644 index 0000000..6532084 --- /dev/null +++ b/lib/icinga/comment.hpp @@ -0,0 +1,59 @@ +/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */ + +#ifndef COMMENT_H +#define COMMENT_H + +#include "icinga/i2-icinga.hpp" +#include "icinga/comment-ti.hpp" +#include "icinga/checkable-ti.hpp" +#include "remote/messageorigin.hpp" + +namespace icinga +{ + +/** + * A comment. + * + * @ingroup icinga + */ +class Comment final : public ObjectImpl<Comment> +{ +public: + DECLARE_OBJECT(Comment); + DECLARE_OBJECTNAME(Comment); + + static boost::signals2::signal<void (const Comment::Ptr&)> OnCommentAdded; + static boost::signals2::signal<void (const Comment::Ptr&)> OnCommentRemoved; + static boost::signals2::signal<void (const Comment::Ptr&, const String&, double, const MessageOrigin::Ptr&)> OnRemovalInfoChanged; + + intrusive_ptr<Checkable> GetCheckable() const; + + bool IsExpired() const; + + void SetRemovalInfo(const String& removedBy, double removeTime, const MessageOrigin::Ptr& origin = nullptr); + + static int GetNextCommentID(); + + static String AddComment(const intrusive_ptr<Checkable>& checkable, CommentType entryType, + const String& author, const String& text, bool persistent, double expireTime, bool sticky = false, + const String& id = String(), const MessageOrigin::Ptr& origin = nullptr); + + static void RemoveComment(const String& id, bool removedManually = false, const String& removedBy = "", + const MessageOrigin::Ptr& origin = nullptr); + + static String GetCommentIDFromLegacyID(int id); + +protected: + void OnAllConfigLoaded() override; + void Start(bool runtimeCreated) override; + void Stop(bool runtimeRemoved) override; + +private: + ObjectImpl<Checkable>::Ptr m_Checkable; + + static void CommentsExpireTimerHandler(); +}; + +} + +#endif /* COMMENT_H */ |