]> granicus.if.org Git - icinga2/commitdiff
Build fix for GCC.
authorGunnar Beutner <gunnar@beutner.name>
Thu, 31 May 2012 06:54:36 +0000 (08:54 +0200)
committerGunnar Beutner <gunnar@beutner.name>
Thu, 31 May 2012 06:54:36 +0000 (08:54 +0200)
dyn/dynamicdictionary.h
dyn/objectmap.cpp
dyn/objectmap.h
dyn/objectset.cpp
dyn/objectset.h
dyntest/dyntest.cpp

index 465a7ebed41fe6a006bc6bbd4cd109c4f0202599..7f9398c998c606950aa97890db5663b45b1513b4 100644 (file)
@@ -45,10 +45,10 @@ public:
        typedef weak_ptr<DynamicDictionary> WeakPtr;
 
        DynamicDictionary(void);
-       DynamicDictionary(Dictionary::Ptr serializedDictionary);
+//     DynamicDictionary(Dictionary::Ptr serializedDictionary);
 
-       void AddParent(DynamicDictionary::Ptr parent);
-       void ClearParents(void);
+//     void AddParent(DynamicDictionary::Ptr parent);
+//     void ClearParents(void);
 
        template<typename T>
        bool GetProperty(string name, T *value, DynamicDictionaryOperator *op) const
@@ -63,14 +63,20 @@ public:
        }
 
        template<typename T>
-       void SetProperty(string name, const T& value, DynamicDictionaryOperator op);
+       void SetProperty(string name, const T& value, DynamicDictionaryOperator op)
+       {
+               DynamicDictionaryValue ddv;
+               ddv.Value = value;
+               ddv.Operator = op;
+               m_Values[name] = ddv;
+       }
 
-       Dictionary::Ptr ToFlatDictionary(void) const;
+//     Dictionary::Ptr ToFlatDictionary(void) const;
 
-       Dictionary::Ptr Serialize(void);
+//     Dictionary::Ptr Serialize(void);
 
 private:
-       set<DynamicDictionary::Ptr> m_Parents;
+//     set<DynamicDictionary::Ptr> m_Parents;
        map<string, DynamicDictionaryValue> m_Values;
 };
 
index 6c7b76bdb6a3bea111c011cf12c6a84dce115d53..5c70bf8c489889c1ad4d177e90a16457735751c7 100644 (file)
@@ -76,18 +76,18 @@ ObjectMap::Range ObjectMap::GetRange(string key)
 
 int ObjectMap::ObjectAddedHandler(const ObjectSetEventArgs& ea)
 {
-       AddObject(ea.Object);
+       AddObject(ea.Target);
        return 0;
 }
 
 int ObjectMap::ObjectCommittedHandler(const ObjectSetEventArgs& ea)
 {
-       CheckObject(ea.Object);
+       CheckObject(ea.Target);
        return 0;
 }
 
 int ObjectMap::ObjectRemovedHandler(const ObjectSetEventArgs& ea)
 {
-       RemoveObject(ea.Object);
+       RemoveObject(ea.Target);
        return 0;
 }
index dc60262f31b13ff0690f802534f842c0bf9e9243..8cd14a7b54385fc7cae74929cb70af2ad5cfcc97 100644 (file)
@@ -56,4 +56,4 @@ private:
 
 }
 
-#endif OBJECTMAP_H
+#endif /* OBJECTMAP_H */
index 9f0889808dca7f3227466418afa0d96b06d388e3..47ed599bb5d591e042ad637c7b2e253f46aad4c8 100644 (file)
@@ -34,7 +34,8 @@ ObjectSet::ObjectSet(const ObjectSet::Ptr& parent, ObjectPredicate filter)
 void ObjectSet::Start(void)
 {
        if (m_Parent) {
-               m_Parent->OnObjectCommitted += bind_weak(&ObjectSet::ObjectCommittedHandler, shared_from_this());
+               m_Parent->OnObjectAdded += bind_weak(&ObjectSet::ObjectAddedOrCommittedHandler, shared_from_this());
+               m_Parent->OnObjectCommitted += bind_weak(&ObjectSet::ObjectAddedOrCommittedHandler, shared_from_this());
                m_Parent->OnObjectRemoved += bind_weak(&ObjectSet::ObjectRemovedHandler, shared_from_this());
 
                for (ObjectSet::Iterator it = m_Parent->Begin(); it != m_Parent->End(); it++)
@@ -48,7 +49,7 @@ void ObjectSet::AddObject(const Object::Ptr& object)
 
        ObjectSetEventArgs ea;
        ea.Source = shared_from_this();
-       ea.Object = object;
+       ea.Target = object;
        OnObjectAdded(ea);
 }
 
@@ -61,7 +62,7 @@ void ObjectSet::RemoveObject(const Object::Ptr& object)
 
                ObjectSetEventArgs ea;
                ea.Source = shared_from_this();
-               ea.Object = object;
+               ea.Target = object;
                OnObjectRemoved(ea);
        }
 }
@@ -83,21 +84,21 @@ void ObjectSet::CheckObject(const Object::Ptr& object)
                else {
                        ObjectSetEventArgs ea;
                        ea.Source = shared_from_this();
-                       ea.Object = object;
+                       ea.Target = object;
                        OnObjectCommitted(ea);
                }
        }
 }
 
-int ObjectSet::ObjectCommittedHandler(const ObjectSetEventArgs& ea)
+int ObjectSet::ObjectAddedOrCommittedHandler(const ObjectSetEventArgs& ea)
 {
-       CheckObject(ea.Object);
+       CheckObject(ea.Target);
        return 0;
 }
 
 int ObjectSet::ObjectRemovedHandler(const ObjectSetEventArgs& ea)
 {
-       RemoveObject(ea.Object);
+       RemoveObject(ea.Target);
        return 0;
 }
 
index e277f4bbc6ff0f581585c0a1d1f1b772b6a9be93..a8377ca93351b66261f361eac23dcff1ba456ecb 100644 (file)
@@ -25,7 +25,7 @@ namespace icinga
 
 struct ObjectSetEventArgs : public EventArgs
 {
-       Object::Ptr Object;
+       Object::Ptr Target;
 };
 
 typedef function<bool (const Object::Ptr&)> ObjectPredicate;
@@ -64,7 +64,7 @@ private:
        ObjectSet::Ptr m_Parent;
        ObjectPredicate m_Filter;
 
-       int ObjectCommittedHandler(const ObjectSetEventArgs& ea);
+       int ObjectAddedOrCommittedHandler(const ObjectSetEventArgs& ea);
        int ObjectRemovedHandler(const ObjectSetEventArgs& ea);
 };
 
index 4870d07e8db54f1f9f3e8da8fd9d697d95586bdd..1b8faba5ffd206e109fb07090ac1c9338f9a5d27 100644 (file)
@@ -2,36 +2,37 @@
 
 using namespace icinga;
 
-bool foogetter(const Object::Ptr& object, string *key)
+bool propgetter(string prop, const Object::Ptr& object, string *key)
 {
        DynamicObject::Ptr dobj = dynamic_pointer_cast<DynamicObject>(object);
-       return dobj->GetConfig()->GetProperty("foo", key);
-}
-
-bool foo(const Object::Ptr& object)
-{
-       DynamicObject::Ptr dobj = dynamic_pointer_cast<DynamicObject>(object);
-
-       string value;
-       return dobj->GetConfig()->GetProperty("foo", &value);
+       return dobj->GetConfig()->GetProperty(prop, key);
 }
 
 int main(int argc, char **argv)
 {
-       for (int i = 0; i < 1000000; i++) {
+       for (int i = 0; i < 10000; i++) {
+               stringstream sname;
+               sname << "foo" << i;
+
                DynamicObject::Ptr dobj = make_shared<DynamicObject>();
-               dobj->GetConfig()->SetProperty("foo", "bar");
+               dobj->GetConfig()->SetProperty("type", "process");
+               dobj->GetConfig()->SetProperty("name", sname.str());
                dobj->Commit();
        }
 
-       ObjectSet::Ptr filtered = make_shared<ObjectSet>(ObjectSet::GetAllObjects(), &foo);
-       filtered->Start();
+       ObjectMap::Ptr byType = make_shared<ObjectMap>(ObjectSet::GetAllObjects(),
+           bind(&propgetter, "type", _1, _2));
+       byType->Start();
+
+       ObjectMap::Ptr byName = make_shared<ObjectMap>(ObjectSet::GetAllObjects(),
+           bind(&propgetter, "name", _1, _2));
+       byName->Start();
 
-       ObjectMap::Ptr m = make_shared<ObjectMap>(ObjectSet::GetAllObjects(), &foogetter);
-       m->Start();
+       ObjectMap::Range processes = byType->GetRange("process");
+       cout << distance(processes.first, processes.second) << " processes" << endl;
 
-       ObjectMap::Range range = m->GetRange("bar");
-       cout << distance(range.first, range.second) << " elements" << endl;
+       ObjectMap::Range foo55 = byName->GetRange("foo55");
+       cout << distance(foo55.first, foo55.second) << " foo55s" << endl;
 
        return 0;
 }