Diffstat (limited to 'noncore/apps/opie-reader/Bkmks.h') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/apps/opie-reader/Bkmks.h | 37 |
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 @@ -3,4 +3,5 @@ #include "config.h" +#include "Filedata.h" #include <stdio.h> @@ -11,9 +12,14 @@ 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) @@ -23,10 +29,22 @@ 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(); + } }; @@ -38,9 +56,8 @@ class BkmkFile 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: |