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