osaf/services/saf/amf/amfd/include/db_template.h |  63 ++++++++++++++++++++++++
 1 files changed, 63 insertions(+), 0 deletions(-)


diff --git a/osaf/services/saf/amf/amfd/include/db_template.h 
b/osaf/services/saf/amf/amfd/include/db_template.h
new file mode 100644
--- /dev/null
+++ b/osaf/services/saf/amf/amfd/include/db_template.h
@@ -0,0 +1,63 @@
+/*      -*- OpenSAF  -*-
+ *
+ * (C) Copyright 2014 The OpenSAF Foundation
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. This file and program are licensed
+ * under the GNU Lesser General Public License Version 2.1, February 1999.
+ * The complete license can be accessed from the following location:
+ * http://opensource.org/licenses/lgpl-license.php
+ * See the Copying file included with the OpenSAF distribution for full
+ * licensing terms.
+ *
+ * Author(s): Ericsson AB
+ *
+ */
+#ifndef DB_TEMPLATE_H
+#define        DB_TEMPLATE_H
+
+#include <map>
+#include <string>
+
+template <typename T>
+class AmfDb {
+  public:
+   void insert(T *obj);
+   void erase(T *obj);
+   T *find(const SaNameT *name);
+   
+   typedef std::map<std::string, T*> AmfDbMap;
+   typedef typename AmfDbMap::const_iterator const_iterator;
+
+   const_iterator begin() const {return db.begin();}
+   const_iterator end() const {return db.end();}
+
+  private:
+   AmfDbMap db;
+};
+
+template <typename T>
+void AmfDb<T>::insert(T *obj) {
+  std::string name((const char*)obj->name.value, obj->name.length);
+  db[name] = obj;
+}
+
+template <typename T>
+void AmfDb<T>::erase(T *obj) {
+  std::string name((const char*)obj->name.value, obj->name.length);
+  typename AmfDbMap::iterator it = db.find(name);
+  db.erase(it);
+}
+
+template <typename T>
+T *AmfDb<T>::find(const SaNameT *dn) {
+  std::string name((const char*)dn->value, dn->length);
+  typename AmfDbMap::iterator it = db.find(name);
+  if (it == db.end())
+    return NULL;
+  else
+    return it->second;
+}
+
+#endif /* DB_TEMPLATE_H */

------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to