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 <defs.h>
00029
00030 SWORD_NAMESPACE_START
00031
00032 class FileDesc;
00033 class SWBuf;
00034
00035 class SWDLLEXPORT RawStr4 {
00036 static int instance;
00037 char *path;
00038 long lastoff;
00039
00040 protected:
00041 FileDesc *idxfd;
00042 FileDesc *datfd;
00043 void prepText(SWBuf &buf);
00044 void doSetText(const char *key, const char *buf, long len = -1);
00045 void doLinkEntry(const char *destkey, const char *srckey);
00046 public:
00047 char nl;
00048 RawStr4(const char *ipath, int fileMode = -1);
00049 virtual ~RawStr4();
00050 void getIDXBuf(long ioffset, char **buf);
00051 void getIDXBufDat(long ioffset, char **buf);
00052 signed char findOffset(const char *key, long *start, unsigned long *size,
00053 long away = 0, long *idxoff = 0);
00054 void readText(long start, unsigned long *size, char **idxbuf, SWBuf &buf);
00055 static signed char createModule(const char *path);
00056 };
00057
00058 SWORD_NAMESPACE_END
00059 #endif