15 void write(
const char *data,
int len)
17 ss->write(
ss->writeData, data, len);
21 const LWSaveState *
ss;
28 void Begin(
const LWBlockIdent &
id,
bool leaf =
true)
const
30 ss->beginBlk(
ss->writeData, &
id, leaf);
34 ss->endBlk(
ss->writeData);
38 ss->depth(
ss->writeData);
42 void Write (
const bool data)
const
44 unsigned char c = data;
45 ss->writeU1(
ss->writeData, &c, 1);
49 void Write (
const char data)
const
51 ss->writeI1(
ss->writeData, &data, 1);
54 void Write (
const char *data,
int length)
const
56 ss->writeI1(
ss->writeData, data, length);
60 void Write (
const short data)
const
62 ss->writeI2(
ss->writeData, &data, 1);
65 void Write (
const short *data,
int length)
const
67 ss->writeI2(
ss->writeData, data, length);
71 void Write (
const int data)
const
73 ss->writeI4(
ss->writeData, &data, 1);
76 void Write (
const int *data,
int length)
const
78 ss->writeI4(
ss->writeData, data, length);
82 void Write (
const unsigned char data)
const
84 ss->writeU1(
ss->writeData, &data, 1);
87 void Write (
const unsigned char *data,
int length)
const
89 ss->writeU1(
ss->writeData, data, length);
92 void Write (
const unsigned short data)
const
94 ss->writeU2(
ss->writeData, &data, 1);
97 void Write (
const unsigned short *data,
int length)
const
99 ss->writeU2(
ss->writeData, data, length);
102 void Write (
const unsigned int data)
const
104 ss->writeU4(
ss->writeData, &data, 1);
107 void Write (
const unsigned int *data,
int length)
const
109 ss->writeU4(
ss->writeData, data, length);
114 ss->writeFP(
ss->writeData, &data, 1);
117 void Write (
const float *data,
int length)
const
119 ss->writeFP(
ss->writeData, data, length);
123 void Write (
const double data)
const
125 ss->writeDP(
ss->writeData, &data, 1);
128 void Write (
const double *data,
int length)
const
130 ss->writeDP(
ss->writeData, data, length);
137 ss->writeStr(
ss->writeData, data);
139 void Write (
const std::string data)
const
141 ss->writeStr(
ss->writeData, data.c_str());
144 template <
class T>
void WriteBlock (
const LWBlockIdent &
id, T value,
bool leaf =
true)
const
150 template <
class T>
void WriteBlock (
const LWBlockIdent &
id, T value,
int len,
bool leaf =
true)
const
168 const LWLoadState *
ls;
170 int read(
char *data,
int len = 1)
const
172 rc =
ls->read(
ls->readData, data, len);
185 LWID
Find(
const LWBlockIdent *
id)
const
187 return ls->findBlk(
ls->readData,
id);
191 ls->endBlk(
ls->readData);
195 return ls->depth(
ls->readData);
197 const bool Eof(
void)
const {
return rc == -1;}
203 rc =
ls->readU1(
ls->readData, &c, 1);
209 rc =
ls->readU1(
ls->readData, &c, 1);
215 rc =
ls->readI1(
ls->readData, &c, 1);
222 rc =
ls->readU2(
ls->readData, &s, 1);
228 rc =
ls->readI2(
ls->readData, &s, 1);
235 rc =
ls->readU4(
ls->readData, &i, 1);
241 rc =
ls->readI4(
ls->readData, &i, 1);
248 rc =
ls->readFP(
ls->readData, &f, 1);
251 void read(
float *f,
int length)
const
253 rc =
ls->readFP(
ls->readData, f, length);
268 rc =
ls->readDP(
ls->readData, &d, 1);
272 void read(
double *d,
int length)
const
274 rc =
ls->readDP(
ls->readData, d, length);
282 rc =
ls->readStr(
ls->readData, buffer, max);
288 rc =
ls->readStr(
ls->readData, buffer, 1023);
289 return std::string(buffer);
296 rc =
ls->readU1(
ls->readData, &c, 1);
299 void read(
unsigned char &c)
const
301 rc =
ls->readU1(
ls->readData, &c, 1);
305 rc =
ls->readI1(
ls->readData, &c, 1);
307 void read(
unsigned short &s)
const
309 rc =
ls->readU2(
ls->readData, &s, 1);
313 rc =
ls->readI2(
ls->readData, &s, 1);
315 void read(
unsigned int &i)
const
317 rc =
ls->readU4(
ls->readData, &i, 1);
321 rc =
ls->readI4(
ls->readData, &i, 1);
325 rc =
ls->readFP(
ls->readData, &f, 1);
332 rc =
ls->readDP(
ls->readData, &d, 1);
338 void read(std::string &str)
const
341 rc =
ls->readStr(
ls->readData, buffer, 1023);
356 LWSaveState *saveState;
357 LWLoadState *loadState;
360 File(std::string name,
ioType type,
int ioMode = LWIO_ASCII) :
367 loadState =
globPtr->openLoad (name.c_str(), ioMode);
371 saveState =
globPtr->openSave (name.c_str(), ioMode);
384 if (loadState)
globPtr->closeLoad(loadState);
388 if (saveState)
globPtr->closeSave(saveState);