REGISTER_TYPE(CheckerComponent);
-void CheckerComponent::Start(void)
+void CheckerComponent::OnConfigLoaded(void)
{
- DynamicObject::Start();
-
DynamicObject::OnStarted.connect(bind(&CheckerComponent::ObjectHandler, this, _1));
DynamicObject::OnStopped.connect(bind(&CheckerComponent::ObjectHandler, this, _1));
DynamicObject::OnAuthorityChanged.connect(bind(&CheckerComponent::ObjectHandler, this, _1));
Service::OnNextCheckChanged.connect(bind(&CheckerComponent::NextCheckChangedHandler, this, _1));
+}
+
+void CheckerComponent::Start(void)
+{
+ DynamicObject::Start();
m_Stopped = false;
m_ResultTimer->SetInterval(5);
m_ResultTimer->OnTimerExpired.connect(boost::bind(&CheckerComponent::ResultTimerHandler, this));
m_ResultTimer->Start();
-
- BOOST_FOREACH(const Service::Ptr& service, DynamicType::GetObjects<Service>()) {
- ObjectHandler(service);
- }
}
void CheckerComponent::Stop(void)
>
> ServiceSet;
+ virtual void OnConfigLoaded(void);
virtual void Start(void);
virtual void Stop(void);
boost::signals2::signal<void (const DynamicObject::Ptr&, const String&, bool)> DynamicObject::OnAuthorityChanged;
DynamicObject::DynamicObject(void)
-{
- SetActive(false);
-}
-
-DynamicObject::~DynamicObject(void)
{ }
DynamicType::Ptr DynamicObject::GetType(void) const
public:
DECLARE_PTR_TYPEDEFS(DynamicObject);
- ~DynamicObject(void);
-
static boost::signals2::signal<void (const DynamicObject::Ptr&)> OnStarted;
static boost::signals2::signal<void (const DynamicObject::Ptr&)> OnStopped;
static boost::signals2::signal<void (const DynamicObject::Ptr&)> OnStateChanged;
void Service::Start(void)
{
- DynamicObject::Start();
-
VERIFY(GetHost());
AddDowntimesToCache();
AddCommentsToCache();
StartDowntimesExpiredTimer();
+
+ double now = Utility::GetTime();
+
+ if (GetNextCheck() < now + 300)
+ SetNextCheck(now + Utility::Random() % 300);
+
+ DynamicObject::Start();
}
void Service::OnConfigLoaded(void)
UpdateSlaveNotifications();
SetSchedulingOffset(Utility::Random());
-
- if (GetNextCheck() < Utility::GetTime() + 300)
- SetNextCheck(Utility::GetTime() + Utility::Random() % 300);
}
Service::Ptr Service::GetByNamePair(const String& hostName, const String& serviceName)