view MemoryDBLink.hpp @ 7:d6fdca3bf24e

Make sure everything works for MemoryDBLink.
author Tom Fredrik Blenning Klaussen <bfg@blenning.no>
date Wed, 22 Aug 2012 01:07:06 +0200
parents aae83c0a771d
children b5943e4bf676
line wrap: on
line source

#ifndef MEMORYDBLINK_HPP
#define MEMORYDBLINK_HPP
#include "FileDBLink.hpp"

#include <QtCore/QMap>
#include <QtCore/QSharedPointer>

class MemoryDBLink : public FileDBLink {
public:
  bool exists(const QString& path)
  {
    return (entries.contains(path));
  }

  QStringList toStringList();

  virtual void addFile(const QString& path, qint64 size, const QDateTime& dtime, const QByteArray& hash);
  virtual void updateFile(const QString& path, qint64 size, const QDateTime& dtime, const QByteArray& hash);
  DBStatus existsWithMtime(const QString& path, const QDateTime& mtime);

  const QList<QSharedPointer<DBInfo> > values(const QString& prefix = QString() ) const;
  virtual void keepOnlyFromPrefix(const QString& prefix, const QStringList& files);
  virtual void deleteFileFromDB(const QString& path);


private:
  void addFile(const DBInfo& info);
  bool tryAddFile(const DBInfo& info);
  void updateFile(const DBInfo& dbinfo);

  QMap<QString, QSharedPointer<DBInfo> > entries;
};

#endif //MEMORYDBLINK_HPP