50 lines
922 B
C
50 lines
922 B
C
|
#ifndef INBOX_H
|
||
|
#define INBOX_H
|
||
|
|
||
|
/**
|
||
|
* (C) 2018 Jordan Sherer <kn4crd@gmail.com> - All Rights Reserved
|
||
|
**/
|
||
|
|
||
|
#include <QObject>
|
||
|
#include <QString>
|
||
|
#include <QPair>
|
||
|
#include <QVariant>
|
||
|
|
||
|
#include "vendor/sqlite3/sqlite3.h"
|
||
|
|
||
|
#include "Message.h"
|
||
|
|
||
|
|
||
|
class Inbox
|
||
|
{
|
||
|
public:
|
||
|
explicit Inbox(QString path);
|
||
|
~Inbox();
|
||
|
|
||
|
// Low-Level Interface
|
||
|
bool isOpen();
|
||
|
bool open();
|
||
|
void close();
|
||
|
QString error();
|
||
|
int count(QString type, QString query, QString match);
|
||
|
QList<QPair<int, Message>> values(QString type, QString query, QString match, int offset, int limit);
|
||
|
Message value(int key);
|
||
|
int append(Message value);
|
||
|
bool set(int key, Message value);
|
||
|
bool del(int key);
|
||
|
|
||
|
// High-Level Interface
|
||
|
int countUnreadFrom(QString from);
|
||
|
QPair<int, Message> firstUnreadFrom(QString from);
|
||
|
|
||
|
signals:
|
||
|
|
||
|
public slots:
|
||
|
|
||
|
private:
|
||
|
QString path_;
|
||
|
sqlite3 * db_;
|
||
|
};
|
||
|
|
||
|
#endif // INBOX_H
|