]> granicus.if.org Git - icinga2/blobdiff - lib/icinga/checkable.cpp
Make AddGroup() unique.
[icinga2] / lib / icinga / checkable.cpp
index 6bb251eefa59f49f092b7e80538de1876a784eaa..d60ffaf440994c2ad9c4ac1aa1c62aa9d7075606 100644 (file)
@@ -88,6 +88,21 @@ void Checkable::OnStateLoaded(void)
        }
 }
 
+void Checkable::AddGroup(const String& name)
+{
+       boost::mutex::scoped_lock lock(m_CheckableMutex);
+
+       Array::Ptr groups = GetGroups();
+
+       if (groups && groups->Contains(name))
+               return;
+
+       if (!groups)
+               groups = make_shared<Array>();
+
+       groups->Add(name);
+}
+
 AcknowledgementType Checkable::GetAcknowledgement(void)
 {
        ASSERT(OwnsLock());