bdfc1cff8e
commit e48c78765ca1e2e5a68fd93bac7191eaf6918352 Author: Jordan Sherer <jordan@widefido.com> Date: Wed Jan 2 12:23:28 2019 -0500 Transition to persistent inbox for later retrieval Fixed issue with inbox items disappearing due to aging. commit 1df07595bf6507438c1488839f7a2075a432a1a1 Author: Jordan Sherer <jordan@widefido.com> Date: Wed Jan 2 09:23:28 2019 -0500 Filtered value and count queries for the inbox commit c93a93a1c43a65fae4a31ddeb40c77c53204bbdb Author: Jordan Sherer <jordan@widefido.com> Date: Tue Jan 1 22:58:07 2019 -0500 Initial cut of inbox storage
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
|