diff MemoryDbLink.cpp @ 0:a3834af36579

Working with memory backend.
author Tom Fredrik Blenning Klaussen <bfg@blenning.no>
date Mon, 20 Aug 2012 15:49:48 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MemoryDbLink.cpp	Mon Aug 20 15:49:48 2012 +0200
@@ -0,0 +1,41 @@
+#include "MemoryDbLink.hpp"
+
+#include <QtCore/QStringList>
+
+void MemoryDbLink::addFile(const QString& path, qint64 size, const QDateTime& dtime, const QCryptographicHash& hash)
+{
+  addFile(DBInfo(path, size, dtime, hash.result()));
+}
+
+bool MemoryDbLink::tryAddFile(const DBInfo& dbinfo)
+{
+  QMap<QString, QSharedPointer<DBInfo> >::iterator pos;
+  pos = entries.find(dbinfo.path());
+  if (pos == entries.end()) {
+    entries.insert(dbinfo.path(), QSharedPointer<DBInfo>(new DBInfo(dbinfo)));
+    return true;
+  }
+  return false;
+}
+
+void MemoryDbLink::addFile(const DBInfo& dbinfo)
+{
+  if (!tryAddFile(dbinfo)) {
+    abort(); //Should throw exception
+  }
+}
+
+
+QStringList MemoryDbLink::toStringList()
+{
+  QStringList list;
+  foreach(QSharedPointer<DBInfo> info, entries) {
+    list << info->serialize();
+  }
+  return list;
+}
+
+const QList<QSharedPointer<FileDbLink::DBInfo> > MemoryDbLink::values() const
+{
+  return entries.values();
+}