00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef RAWSTR4_H
00026 #define RAWSTR4_H
00027
00028 #include <filemgr.h>
00029 #include <swbuf.h>
00030 #include <defs.h>
00031
00032 SWORD_NAMESPACE_START
00033
00034 class SWDLLEXPORT RawStr4 {
00035 static int instance;
00036 char *path;
00037 long lastoff;
00038
00039 protected:
00040 FileDesc *idxfd;
00041 FileDesc *datfd;
00042 void prepText(SWBuf &buf);
00043 void doSetText(const char *key, const char *buf, long len = -1);
00044 void doLinkEntry(const char *destkey, const char *srckey);
00045 public:
00046 char nl;
00047 RawStr4(const char *ipath, int fileMode = -1);
00048 virtual ~RawStr4();
00049 void getIDXBuf(long ioffset, char **buf);
00050 void getIDXBufDat(long ioffset, char **buf);
00051 signed char findOffset(const char *key, long *start, unsigned long *size,
00052 long away = 0, long *idxoff = 0);
00053 void readText(long start, unsigned long *size, char **idxbuf, SWBuf &buf);
00054 static signed char createModule(const char *path);
00055 };
00056
00057 SWORD_NAMESPACE_END
00058 #endif