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