Add TrustedContant and ContactStorage
Add tinyxml.py in waf-tools
diff --git a/src/contact-storage.h b/src/contact-storage.h
new file mode 100644
index 0000000..eca65da
--- /dev/null
+++ b/src/contact-storage.h
@@ -0,0 +1,53 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+/*
+ * Copyright (c) 2013, Regents of the University of California
+ * Yingdi Yu
+ *
+ * BSD license, See the LICENSE file for more information
+ *
+ * Author: Yingdi Yu <yingdi@cs.ucla.edu>
+ */
+
+#ifndef LINKNDN_CONTACT_STORAGE_H
+#define LINKNDN_CONTACT_STORAGE_H
+
+#include <sqlite3.h>
+#include "trusted-contact.h"
+#include "contact-item.h"
+
+class ContactStorage
+{
+public:
+ ContactStorage();
+
+ ~ContactStorage() {}
+
+ void
+ addTrustedContact(const TrustedContact& trustedContact);
+
+ void
+ addNormalContact(const ContactItem& contactItem);
+
+ std::vector<ndn::Ptr<TrustedContact> >
+ getAllTrustedContacts() const;
+
+ std::vector<ndn::Ptr<ContactItem> >
+ getAllNormalContacts() const;
+
+private:
+ inline bool
+ doesTrustedContactExist(const ndn::Name& name)
+ { return doesContactExist(name, false); }
+
+ inline bool
+ doesNormalContactExist(const ndn::Name& name)
+ { return doesContactExist(name, true); }
+
+ bool
+ doesContactExist(const ndn::Name& name, bool normal);
+
+private:
+ sqlite3 *m_db;
+};
+
+#endif