summaryrefslogtreecommitdiff
path: root/noncore/apps/opie-reader/Bkmks.h
Side-by-side diff
Diffstat (limited to 'noncore/apps/opie-reader/Bkmks.h') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-reader/Bkmks.h37
1 files changed, 27 insertions, 10 deletions
diff --git a/noncore/apps/opie-reader/Bkmks.h b/noncore/apps/opie-reader/Bkmks.h
index b38184a..ee528e4 100644
--- a/noncore/apps/opie-reader/Bkmks.h
+++ b/noncore/apps/opie-reader/Bkmks.h
@@ -2,6 +2,7 @@
#define __Bkmks_h
#include "config.h"
+#include "Filedata.h"
#include <stdio.h>
template<class T>
@@ -10,11 +11,16 @@ class CList;
class Bkmk
{
friend class BkmkFile;
- tchar* m_name;
- tchar* m_anno;
+ unsigned char* m_name;
+ unsigned short m_namelen;
+ unsigned char* m_anno;
+ unsigned short m_annolen;
unsigned int m_position;
+ void init(const void*, unsigned short, const void*, unsigned short, unsigned int);
public:
- Bkmk() : m_name(NULL), m_anno(NULL), m_position(0) {};
+ Bkmk() : m_name(NULL), m_namelen(0), m_anno(NULL), m_annolen(0), m_position(0) {};
+ Bkmk(const unsigned char* _nm, unsigned short _nmlen, const unsigned char* _anno, unsigned short _annolen, unsigned int _p);
+ Bkmk(const tchar* _nm, const unsigned char* _anno, unsigned short _annolen, unsigned int _p);
Bkmk(const tchar* _nm, const tchar* _anno, unsigned int _p);
Bkmk(const Bkmk& rhs) : m_name(NULL), m_anno(NULL)
{
@@ -22,12 +28,24 @@ class Bkmk
}
~Bkmk();
unsigned int value() const { return m_position; }
- tchar *name() const { return m_name; }
- tchar *anno() const { return m_anno; }
+ void value(unsigned int _v) { m_position = _v; }
+ tchar *name() const { return (tchar*)m_name; }
+ tchar *anno() const { return (tchar*)m_anno; }
bool operator<(const Bkmk& rhs) { return (m_position < rhs.m_position); }
Bkmk& operator=(const Bkmk& rhs);
bool operator==(const Bkmk& rhs);
void setAnno(tchar* t);
+ void setAnno(unsigned char* t, unsigned short len);
+ unsigned char* filedata()
+ {
+ CFiledata fd(anno());
+ return m_anno+fd.length();
+ }
+ unsigned short filedatalen()
+ {
+ CFiledata fd(anno());
+ return m_annolen - fd.length();
+ }
};
class BkmkFile
@@ -37,11 +55,10 @@ class BkmkFile
bool isUpgraded;
static const unsigned long magic;
private:
- Bkmk* read();
- Bkmk* read03();
- CList<Bkmk>* readall03();
- CList<Bkmk>* readall04();
- void write(tchar* nm, tchar* an, const unsigned int& pos);
+ static Bkmk* read06(FILE*);
+ static Bkmk* read05(FILE*);
+ static Bkmk* read03(FILE*);
+ CList<Bkmk>* readall00(Bkmk*(*fn)(FILE*));
void write(const Bkmk& b);
public:
bool upgraded() { return isUpgraded; }