00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef KMBOX_MBOX_P_H
00021 #define KMBOX_MBOX_P_H
00022
00023 #include "mbox.h"
00024
00025 #include <QtCore/QFile>
00026 #include <QtCore/QObject>
00027 #include <QtCore/QTimer>
00028
00029 namespace KMBox {
00030
00031 class MBoxPrivate : public QObject
00032 {
00033 Q_OBJECT
00034
00035 public:
00036 MBoxPrivate( MBox *mbox );
00037
00038 virtual ~MBoxPrivate();
00039
00040 void close();
00041
00042 void initLoad( const QString &fileName );
00043
00044 bool open();
00045
00046 bool startTimerIfNeeded();
00047
00048 bool isMBoxSeparator( const QByteArray &line ) const;
00049
00050 public Q_SLOTS:
00051 void unlockMBox();
00052
00053 public:
00054 QByteArray mAppendedEntries;
00055 MBoxEntry::List mEntries;
00056 bool mFileLocked;
00057 quint64 mInitialMboxFileSize;
00058 QString mLockFileName;
00059 MBox::LockType mLockType;
00060 MBox *mMBox;
00061 QFile mMboxFile;
00062 bool mReadOnly;
00063 QTimer mUnlockTimer;
00064 QRegExp mSeparatorMatcher;
00065
00066 public:
00067 static QByteArray escapeFrom( const QByteArray &msg );
00068
00072 static QByteArray mboxMessageSeparator( const QByteArray &msg );
00073
00077 static void unescapeFrom( char *msg, size_t size );
00078 };
00079
00080 }
00081
00082 #endif // KMBOX_MBOX_P_H