unauthorizedAccept option
[dyskinesia.git] / src / k8jshistory / k8jshistory.h
blob10f266baea95218b86a98ffbeb0e5e1266d7422d
1 /* coded by Ketmar // Vampire Avalon (psyc://ketmar.no-ip.org/~Ketmar)
2 * Understanding is not required. Only obedience.
4 * This program is free software. It comes without any warranty, to
5 * the extent permitted by applicable law. You can redistribute it
6 * and/or modify it under the terms of the Do What The Fuck You Want
7 * To Public License, Version 2, as published by Sam Hocevar. See
8 * http://sam.zoy.org/wtfpl/COPYING for more details.
9 */
10 #ifndef K8JSHISTORY_H
11 #define K8JSHISTORY_H
13 #include <QDateTime>
14 #include <QFile>
15 #include <QString>
16 #include <QList>
18 //#include "k8history.h"
21 class HistoryFile;
24 class HistoryMessage : public HistoryMessageBase {
25 friend class HistoryFile;
27 public:
28 HistoryMessage () : HistoryMessageBase() {}
29 virtual ~HistoryMessage () {}
31 private:
32 const uchar *parse (const uchar *ptr, int *maxleft, const QString &myUni);
36 class HistoryFile : public HistoryFileBase {
37 friend class HistoryMessage;
39 public:
40 HistoryFile (const QString &fname, const QString &myUni);
41 virtual ~HistoryFile ();
43 virtual bool open (OpenMode newmode);
44 //virtual bool open (bool allowCreate);
45 virtual bool isOpen () const;
46 //virtual bool exists () const;
47 virtual void close ();
48 virtual void remove ();
50 virtual int count ();
52 virtual bool append (const HistoryMessage &msg);
54 /* idx: 0..count-1; idx<0: idx += count; */
55 virtual bool read (int idx, HistoryMessage &msg);
57 private:
58 bool scanMessages ();
60 private:
61 int mCount; // -1: not counted yet
62 QFile mFile;
63 uchar *mMap;
64 int mSize;
65 QString mMyUni;
66 QList<uint> mMsgOfs; // [0..mCount] (the last one marks position for adding new message)
70 #endif