icinga2/cib/cib.cpp

41 lines
841 B
C++

#include "i2-cib.h"
using namespace icinga;
int CIB::m_Types;
Ringbuffer CIB::m_TaskStatistics(15 * 60);
boost::signal<void (const ServiceStatusMessage&)> CIB::OnServiceStatusUpdate;
void CIB::RequireInformation(InformationType types)
{
m_Types |= types;
Application::Ptr app = Application::GetInstance();
Component::Ptr component = app->GetComponent("cibsync");
if (!component) {
ConfigItemBuilder::Ptr cb = boost::make_shared<ConfigItemBuilder>();
cb->SetType("component");
cb->SetName("cibsync");
cb->SetLocal(true);
ConfigItem::Ptr ci = cb->Compile();
ci->Commit();
}
}
void CIB::UpdateTaskStatistics(long tv, int num)
{
m_TaskStatistics.InsertValue(tv, num);
}
int CIB::GetTaskStatistics(long timespan)
{
return m_TaskStatistics.GetValues(timespan);
}
int CIB::GetInformationTypes(void)
{
return m_Types;
}