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);
{
return m_TaskStatistics.GetValues(timespan);
}
-
-int CIB::GetInformationTypes(void)
-{
- return m_Types;
-}
-
namespace icinga
{
-enum InformationType
-{
- CIB_Configuration = 1<<0,
- CIB_ProgramStatus = 1<<1,
- CIB_ServiceStatus = 1<<2
-};
-
class I2_CIB_API CIB
{
public:
- static void RequireInformation(InformationType type);
- static int GetInformationTypes(void);
-
static void UpdateTaskStatistics(long tv, int num);
static int GetTaskStatistics(long timespan);
static boost::signal<void (const ServiceStatusMessage&)> OnServiceStatusUpdate;
private:
- static int m_Types;
-
static RingBuffer m_TaskStatistics;
};
m_ResultTimer->SetInterval(5);
m_ResultTimer->OnTimerExpired.connect(boost::bind(&CheckerComponent::ResultTimerHandler, this));
m_ResultTimer->Start();
-
- CIB::RequireInformation(CIB_Configuration);
- CIB::RequireInformation(CIB_ServiceStatus);
}
void CheckerComponent::Stop(void)
m_StatusTimer->OnTimerExpired.connect(boost::bind(&CompatComponent::StatusTimerHandler, this));
m_StatusTimer->Start();
m_StatusTimer->Reschedule(0);
-
- CIB::RequireInformation(CIB_Configuration);
- CIB::RequireInformation(CIB_ProgramStatus);
- CIB::RequireInformation(CIB_ServiceStatus);
}
/**
EndpointManager::GetInstance()->RegisterEndpoint(m_Endpoint);
EndpointManager::GetInstance()->OnNewEndpoint.connect(bind(&DelegationComponent::NewEndpointHandler, this, _2));
-
- CIB::RequireInformation(CIB_Configuration);
}
void DelegationComponent::Stop(void)
/* call the timer as soon as possible */
m_DiscoveryTimer->Reschedule(0);
-
- CIB::RequireInformation(CIB_Configuration);
}
/**