{
DynamicObject::Start();
- DbObject::OnRegistered.connect(boost::bind(&DbConnection::ActivateObject, this, _1));
- DbObject::OnUnregistered.connect(boost::bind(&DbConnection::DeactivateObject, this, _1));
DbObject::OnQuery.connect(boost::bind(&DbConnection::ExecuteQuery, this, _1));
}
using namespace icinga;
-boost::signals2::signal<void (const DbObject::Ptr&)> DbObject::OnRegistered;
-boost::signals2::signal<void (const DbObject::Ptr&)> DbObject::OnUnregistered;
boost::signals2::signal<void (const DbQuery&)> DbObject::OnQuery;
INITIALIZE_ONCE(DbObject, &DbObject::StaticInitialize);
void DbObject::StaticInitialize(void)
{
- DynamicObject::OnStarted.connect(boost::bind(&DbObject::ObjectStartedHandler, _1));
- DynamicObject::OnStopped.connect(boost::bind(&DbObject::ObjectStoppedHandler, _1));
-
DynamicObject::OnStateChanged.connect(boost::bind(&DbObject::StateChangedHandler, _1));
}
return dbobj;
}
-void DbObject::ObjectStartedHandler(const DynamicObject::Ptr& object)
-{
- DbObject::Ptr dbobj = GetOrCreateByObject(object);
-
- if (!dbobj)
- return;
-
- OnRegistered(dbobj);
-
- dbobj->SendConfigUpdate();
- dbobj->SendStatusUpdate();
-}
-
-void DbObject::ObjectStoppedHandler(const DynamicObject::Ptr& object)
-{
- DbObject::Ptr dbobj = GetOrCreateByObject(object);
-
- if (!dbobj)
- return;
-
- OnUnregistered(dbobj);
-
- {
- ObjectLock olock(object);
- object->ClearExtension("DbObject");
- }
-}
-
void DbObject::StateChangedHandler(const DynamicObject::Ptr& object)
{
DbObject::Ptr dbobj = GetOrCreateByObject(object);
static DbObject::Ptr GetOrCreateByObject(const DynamicObject::Ptr& object);
- static boost::signals2::signal<void (const DbObject::Ptr&)> OnRegistered;
- static boost::signals2::signal<void (const DbObject::Ptr&)> OnUnregistered;
static boost::signals2::signal<void (const DbQuery&)> OnQuery;
void SendConfigUpdate(void);
double m_LastConfigUpdate;
double m_LastStatusUpdate;
- static void ObjectStartedHandler(const DynamicObject::Ptr& object);
- static void ObjectStoppedHandler(const DynamicObject::Ptr& object);
static void StateChangedHandler(const DynamicObject::Ptr& object);
friend class DbType;