compiler/libec: (#1029) Fixed crash serializing null class instances
[sdk] / compiler / bootstrap / ecere / bootstrap / BufferedFile.c
1 /* Code generated from eC source file: BufferedFile.ec */
2 #if defined(__GNUC__)
3 typedef long long int64;
4 typedef unsigned long long uint64;
5 #ifndef _WIN32
6 #define __declspec(x)
7 #endif
8 #elif defined(__TINYC__)
9 #include <stdarg.h>
10 #define __builtin_va_list va_list
11 #define __builtin_va_start va_start
12 #define __builtin_va_end va_end
13 #ifdef _WIN32
14 #define strcasecmp stricmp
15 #define strncasecmp strnicmp
16 #define __declspec(x) __attribute__((x))
17 #else
18 #define __declspec(x)
19 #endif
20 typedef long long int64;
21 typedef unsigned long long uint64;
22 #else
23 typedef __int64 int64;
24 typedef unsigned __int64 uint64;
25 #endif
26 #ifdef __BIG_ENDIAN__
27 #define __ENDIAN_PAD(x) (8 - (x))
28 #else
29 #define __ENDIAN_PAD(x) 0
30 #endif
31 #include <stdint.h>
32 #include <sys/types.h>
33
34 #if /*defined(_W64) || */(defined(__WORDSIZE) && __WORDSIZE == 8) || defined(__x86_64__)
35 #define _64BIT 1
36 #else
37 #define _64BIT 0
38 #endif
39
40 #define arch_PointerSize       sizeof(void *)
41 #define structSize_Instance   (_64BIT ? 24 : 12)
42 #define structSize_File       (_64BIT ? 40 : 20)
43
44 extern void *  __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
45
46 extern void *  __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
47
48 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew(void *  memory, unsigned int size);
49
50 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew0(void *  memory, unsigned int size);
51
52 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
53
54 struct __ecereNameSpace__ecere__sys__BTNode;
55
56 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
57
58 struct __ecereNameSpace__ecere__sys__BinaryTree
59 {
60 struct __ecereNameSpace__ecere__sys__BTNode * root;
61 int count;
62 int (*  CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
63 void (*  FreeKey)(void *  key);
64 } __attribute__ ((gcc_struct));
65
66 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
67
68 struct __ecereNameSpace__ecere__sys__OldList
69 {
70 void *  first;
71 void *  last;
72 int count;
73 unsigned int offset;
74 unsigned int circ;
75 } __attribute__ ((gcc_struct));
76
77 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
78
79 struct __ecereNameSpace__ecere__com__Class
80 {
81 struct __ecereNameSpace__ecere__com__Class * prev;
82 struct __ecereNameSpace__ecere__com__Class * next;
83 char *  name;
84 int offset;
85 int structSize;
86 int (* *  _vTbl)();
87 int vTblSize;
88 int (*  Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
89 void (*  Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
90 int offsetClass;
91 int sizeClass;
92 struct __ecereNameSpace__ecere__com__Class * base;
93 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
94 struct __ecereNameSpace__ecere__sys__BinaryTree members;
95 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
96 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
97 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
98 struct __ecereNameSpace__ecere__sys__OldList derivatives;
99 int memberID;
100 int startMemberID;
101 int type;
102 struct __ecereNameSpace__ecere__com__Instance * module;
103 struct __ecereNameSpace__ecere__com__NameSpace *  nameSpace;
104 char *  dataTypeString;
105 struct __ecereNameSpace__ecere__com__Instance * dataType;
106 int typeSize;
107 int defaultAlignment;
108 void (*  Initialize)();
109 int memberOffset;
110 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
111 char *  designerClass;
112 unsigned int noExpansion;
113 char *  defaultProperty;
114 unsigned int comRedefinition;
115 int count;
116 unsigned int isRemote;
117 unsigned int internalDecl;
118 void *  data;
119 unsigned int computeSize;
120 int structAlignment;
121 int destructionWatchOffset;
122 unsigned int fixed;
123 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
124 int inheritanceAccess;
125 char *  fullName;
126 void *  symbol;
127 struct __ecereNameSpace__ecere__sys__OldList conversions;
128 struct __ecereNameSpace__ecere__sys__OldList templateParams;
129 struct __ecereNameSpace__ecere__com__ClassTemplateArgument *  templateArgs;
130 struct __ecereNameSpace__ecere__com__Class * templateClass;
131 struct __ecereNameSpace__ecere__sys__OldList templatized;
132 int numParams;
133 unsigned int isInstanceClass;
134 unsigned int byValueSystemClass;
135 } __attribute__ ((gcc_struct));
136
137 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char *  name);
138
139 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
140
141 struct __ecereNameSpace__ecere__com__Instance
142 {
143 int (* *  _vTbl)();
144 struct __ecereNameSpace__ecere__com__Class * _class;
145 int _refCount;
146 } __attribute__ ((gcc_struct));
147
148 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
149
150 struct __ecereNameSpace__ecere__com__Property
151 {
152 struct __ecereNameSpace__ecere__com__Property * prev;
153 struct __ecereNameSpace__ecere__com__Property * next;
154 char *  name;
155 unsigned int isProperty;
156 int memberAccess;
157 int id;
158 struct __ecereNameSpace__ecere__com__Class * _class;
159 char *  dataTypeString;
160 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
161 struct __ecereNameSpace__ecere__com__Instance * dataType;
162 void (*  Set)(void * , int);
163 int (*  Get)(void * );
164 unsigned int (*  IsSet)(void * );
165 void *  data;
166 void *  symbol;
167 int vid;
168 unsigned int conversion;
169 unsigned int watcherOffset;
170 char *  category;
171 unsigned int compiled;
172 unsigned int selfWatchable;
173 unsigned int isWatchable;
174 } __attribute__ ((gcc_struct));
175
176 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
177
178 struct __ecereNameSpace__ecere__com__DataMember
179 {
180 struct __ecereNameSpace__ecere__com__DataMember * prev;
181 struct __ecereNameSpace__ecere__com__DataMember * next;
182 char *  name;
183 unsigned int isProperty;
184 int memberAccess;
185 int id;
186 struct __ecereNameSpace__ecere__com__Class * _class;
187 char *  dataTypeString;
188 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
189 struct __ecereNameSpace__ecere__com__Instance * dataType;
190 int type;
191 int offset;
192 int memberID;
193 struct __ecereNameSpace__ecere__sys__OldList members;
194 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
195 int memberOffset;
196 int structAlignment;
197 } __attribute__ ((gcc_struct));
198
199 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
200
201 struct __ecereNameSpace__ecere__com__Method
202 {
203 char *  name;
204 struct __ecereNameSpace__ecere__com__Method * parent;
205 struct __ecereNameSpace__ecere__com__Method * left;
206 struct __ecereNameSpace__ecere__com__Method * right;
207 int depth;
208 int (*  function)();
209 int vid;
210 int type;
211 struct __ecereNameSpace__ecere__com__Class * _class;
212 void *  symbol;
213 char *  dataTypeString;
214 struct __ecereNameSpace__ecere__com__Instance * dataType;
215 int memberAccess;
216 } __attribute__ ((gcc_struct));
217
218 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
219
220 struct __ecereNameSpace__ecere__com__SerialBuffer
221 {
222 unsigned char *  _buffer;
223 unsigned int count;
224 unsigned int _size;
225 unsigned int pos;
226 } __attribute__ ((gcc_struct));
227
228 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
229
230 struct __ecereNameSpace__ecere__com__DataValue
231 {
232 union
233 {
234 char c;
235 unsigned char uc;
236 short s;
237 unsigned short us;
238 int i;
239 unsigned int ui;
240 void *  p;
241 float f;
242 double d;
243 long long i64;
244 uint64 ui64;
245 } __attribute__ ((gcc_struct));
246 } __attribute__ ((gcc_struct));
247
248 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
249
250 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
251 {
252 union
253 {
254 struct
255 {
256 char *  dataTypeString;
257 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
258 } __attribute__ ((gcc_struct));
259 struct __ecereNameSpace__ecere__com__DataValue expression;
260 struct
261 {
262 char *  memberString;
263 union
264 {
265 struct __ecereNameSpace__ecere__com__DataMember * member;
266 struct __ecereNameSpace__ecere__com__Property * prop;
267 struct __ecereNameSpace__ecere__com__Method * method;
268 } __attribute__ ((gcc_struct));
269 } __attribute__ ((gcc_struct));
270 } __attribute__ ((gcc_struct));
271 } __attribute__ ((gcc_struct));
272
273 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_handle, * __ecerePropM___ecereNameSpace__ecere__sys__BufferedFile_handle;
274
275 struct __ecereNameSpace__ecere__sys__BufferedFile
276 {
277 int mode;
278 struct __ecereNameSpace__ecere__com__Instance * handle;
279 unsigned int bufferSize;
280 unsigned int bufferCount;
281 unsigned int bufferPos;
282 unsigned int pos;
283 unsigned char * buffer;
284 unsigned int eof;
285 unsigned int bufferRead;
286 unsigned int fileSize;
287 } __attribute__ ((gcc_struct));
288
289 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BufferedFile;
290
291 unsigned int __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_Get_bufferSize(struct __ecereNameSpace__ecere__com__Instance * this);
292
293 void __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_Set_bufferSize(struct __ecereNameSpace__ecere__com__Instance * this, unsigned int value);
294
295 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_bufferSize, * __ecerePropM___ecereNameSpace__ecere__sys__BufferedFile_bufferSize;
296
297 unsigned int __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_Get_bufferRead(struct __ecereNameSpace__ecere__com__Instance * this);
298
299 void __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_Set_bufferRead(struct __ecereNameSpace__ecere__com__Instance * this, unsigned int value);
300
301 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_bufferRead, * __ecerePropM___ecereNameSpace__ecere__sys__BufferedFile_bufferRead;
302
303 unsigned int __ecereConstructor___ecereNameSpace__ecere__sys__BufferedFile(struct __ecereNameSpace__ecere__com__Instance * this)
304 {
305 struct __ecereNameSpace__ecere__sys__BufferedFile * __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile = (struct __ecereNameSpace__ecere__sys__BufferedFile *)(this ? (((char *)this) + structSize_File) : 0);
306
307 __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_Set_bufferSize(this, 512 * 1024);
308 __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_Set_bufferRead(this, 1 * 1024);
309 return 0x1;
310 }
311
312 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
313
314 void __ecereDestructor___ecereNameSpace__ecere__sys__BufferedFile(struct __ecereNameSpace__ecere__com__Instance * this)
315 {
316 struct __ecereNameSpace__ecere__sys__BufferedFile * __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile = (struct __ecereNameSpace__ecere__sys__BufferedFile *)(this ? (((char *)this) + structSize_File) : 0);
317
318 {
319 (__ecereNameSpace__ecere__com__eInstance_DecRef(__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle), __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle = 0);
320 (__ecereNameSpace__ecere__com__eSystem_Delete(__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->buffer), __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->buffer = 0);
321 }
322 }
323
324 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_CloseInput;
325
326 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__File;
327
328 void __ecereMethod___ecereNameSpace__ecere__sys__BufferedFile_CloseInput(struct __ecereNameSpace__ecere__com__Instance * this)
329 {
330 struct __ecereNameSpace__ecere__sys__BufferedFile * __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile = (struct __ecereNameSpace__ecere__sys__BufferedFile *)(this ? (((char *)this) + structSize_File) : 0);
331
332 ((void (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
333 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle;
334
335 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
336 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_CloseInput])(__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle);
337 }
338
339 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_CloseOutput;
340
341 void __ecereMethod___ecereNameSpace__ecere__sys__BufferedFile_CloseOutput(struct __ecereNameSpace__ecere__com__Instance * this)
342 {
343 struct __ecereNameSpace__ecere__sys__BufferedFile * __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile = (struct __ecereNameSpace__ecere__sys__BufferedFile *)(this ? (((char *)this) + structSize_File) : 0);
344
345 ((void (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
346 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle;
347
348 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
349 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_CloseOutput])(__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle);
350 }
351
352 extern void *  memcpy(void * , const void * , size_t size);
353
354 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek;
355
356 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Read;
357
358 int __ecereMethod___ecereNameSpace__ecere__sys__BufferedFile_Read(struct __ecereNameSpace__ecere__com__Instance * this, unsigned char * buffer, unsigned int size, unsigned int count)
359 {
360 struct __ecereNameSpace__ecere__sys__BufferedFile * __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile = (struct __ecereNameSpace__ecere__sys__BufferedFile *)(this ? (((char *)this) + structSize_File) : 0);
361
362 if(__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle)
363 {
364 unsigned int totalBytesRead = 0;
365 unsigned int bufferCount = __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferCount;
366 unsigned int bufferPos = __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferPos;
367 unsigned char * fileBuffer = __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->buffer + bufferPos;
368 unsigned int readCount = count;
369
370 readCount *= size;
371 while(0x1)
372 {
373 unsigned int bytesRead = (bufferCount > bufferPos) ? (bufferCount - bufferPos) : 0;
374
375 if(bytesRead > readCount)
376 bytesRead = readCount;
377 if(bytesRead)
378 {
379 memcpy(buffer + totalBytesRead, fileBuffer, bytesRead);
380 bufferPos += bytesRead;
381 totalBytesRead += bytesRead;
382 readCount -= bytesRead;
383 }
384 if(readCount)
385 {
386 unsigned int read;
387
388 if(readCount < __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferSize)
389 {
390 unsigned int __simpleStruct0;
391
392 read = (__simpleStruct0 = __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferRead, (readCount > __simpleStruct0) ? readCount : __simpleStruct0);
393 if(bufferPos > bufferCount)
394 {
395 if(bufferPos + readCount - bufferCount > read && (bufferPos + readCount - bufferCount < bufferCount))
396 read = bufferPos + readCount - bufferCount;
397 else
398 {
399 bufferPos = 0;
400 bufferCount = 0;
401 }
402 }
403 if(bufferCount + read > __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferSize)
404 {
405 bufferPos = 0;
406 bufferCount = 0;
407 }
408 }
409 else
410 {
411 read = __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferSize;
412 bufferPos = 0;
413 bufferCount = 0;
414 }
415 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
416 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle;
417
418 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
419 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle, __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->pos + totalBytesRead - bufferPos + bufferCount, 0);
420 read = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))__extension__ ({
421 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle;
422
423 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
424 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle, __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->buffer + bufferCount, 1, read);
425 fileBuffer = __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->buffer + bufferPos;
426 bufferCount += read;
427 if(!read)
428 {
429 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->eof = 0x1;
430 break;
431 }
432 }
433 else
434 break;
435 }
436 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferCount = bufferCount;
437 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferPos = bufferPos;
438 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->pos += totalBytesRead;
439 return totalBytesRead / size;
440 }
441 return 0;
442 }
443
444 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Write;
445
446 int __ecereMethod___ecereNameSpace__ecere__sys__BufferedFile_Write(struct __ecereNameSpace__ecere__com__Instance * this, unsigned char * buffer, unsigned int size, unsigned int count)
447 {
448 unsigned int __simpleStruct0, __simpleStruct1;
449 struct __ecereNameSpace__ecere__sys__BufferedFile * __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile = (struct __ecereNameSpace__ecere__sys__BufferedFile *)(this ? (((char *)this) + structSize_File) : 0);
450 unsigned int result;
451 unsigned int numBytes;
452 unsigned int bytesToBuffer;
453 unsigned int missing;
454
455 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
456 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle;
457
458 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
459 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle, __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->pos, 0);
460 result = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))__extension__ ({
461 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle;
462
463 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
464 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Write])(__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle, buffer, size, count);
465 numBytes = result * size;
466 bytesToBuffer = (__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferSize > __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferPos) ? (__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferSize - __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferPos) : 0;
467 missing = numBytes - bytesToBuffer;
468 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->pos += numBytes;
469 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->fileSize = (__simpleStruct0 = __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->fileSize, __simpleStruct1 = __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->pos, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
470 if(bytesToBuffer < numBytes && __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferCount >= __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferPos && numBytes < __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferSize && missing < __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferPos)
471 {
472 memcpy(__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->buffer, __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->buffer + missing, __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferPos - missing);
473 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferPos -= missing;
474 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferCount -= missing;
475 bytesToBuffer += missing;
476 }
477 if(bytesToBuffer >= numBytes)
478 {
479 unsigned int __simpleStruct0, __simpleStruct1;
480
481 bytesToBuffer = numBytes;
482 memcpy(__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->buffer + __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferPos, buffer, bytesToBuffer);
483 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferPos += bytesToBuffer;
484 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferCount = (__simpleStruct0 = __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferCount, __simpleStruct1 = __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferPos, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
485 }
486 else
487 {
488 unsigned int __simpleStruct0;
489
490 bytesToBuffer = (__simpleStruct0 = __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferSize, (numBytes < __simpleStruct0) ? numBytes : __simpleStruct0);
491 memcpy(__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->buffer, buffer + numBytes - bytesToBuffer, bytesToBuffer);
492 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferPos = bytesToBuffer;
493 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferCount = bytesToBuffer;
494 }
495 return result;
496 }
497
498 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BufferedFile_Getc(struct __ecereNameSpace__ecere__com__Instance * this, char * ch)
499 {
500 struct __ecereNameSpace__ecere__sys__BufferedFile * __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile = (struct __ecereNameSpace__ecere__sys__BufferedFile *)(this ? (((char *)this) + structSize_File) : 0);
501
502 if(__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle)
503 {
504 while(0x1)
505 {
506 if(__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferCount > __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferPos)
507 {
508 *ch = *(__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->buffer + __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferPos);
509 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferPos++;
510 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->pos++;
511 return 0x1;
512 }
513 else
514 {
515 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferPos = 0;
516 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
517 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle;
518
519 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
520 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle, __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->pos, 0);
521 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferCount = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))__extension__ ({
522 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle;
523
524 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
525 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle, __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->buffer, 1, __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferSize);
526 if(!__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferCount)
527 {
528 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->eof = 0x1;
529 break;
530 }
531 }
532 }
533 }
534 return 0x0;
535 }
536
537 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BufferedFile_Putc(struct __ecereNameSpace__ecere__com__Instance * this, char ch)
538 {
539 struct __ecereNameSpace__ecere__sys__BufferedFile * __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile = (struct __ecereNameSpace__ecere__sys__BufferedFile *)(this ? (((char *)this) + structSize_File) : 0);
540 int written = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))__extension__ ({
541 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
542
543 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__BufferedFile->_vTbl;
544 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Write])(this, &ch, 1, 1);
545
546 return written != 0;
547 }
548
549 extern size_t strlen(const char * );
550
551 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BufferedFile_Puts(struct __ecereNameSpace__ecere__com__Instance * this, char * string)
552 {
553 struct __ecereNameSpace__ecere__sys__BufferedFile * __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile = (struct __ecereNameSpace__ecere__sys__BufferedFile *)(this ? (((char *)this) + structSize_File) : 0);
554 int len = strlen(string);
555 int written = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))__extension__ ({
556 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
557
558 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__BufferedFile->_vTbl;
559 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Write])(this, string, 1, len);
560
561 return written == len;
562 }
563
564 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BufferedFile_Seek(struct __ecereNameSpace__ecere__com__Instance * this, int pos, int mode)
565 {
566 struct __ecereNameSpace__ecere__sys__BufferedFile * __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile = (struct __ecereNameSpace__ecere__sys__BufferedFile *)(this ? (((char *)this) + structSize_File) : 0);
567 unsigned int newPosition = __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->pos;
568
569 switch(mode)
570 {
571 case 0:
572 newPosition = pos;
573 break;
574 case 1:
575 newPosition += pos;
576 break;
577 case 2:
578 {
579 newPosition = __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->fileSize + pos;
580 break;
581 }
582 }
583 if(__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->pos != newPosition)
584 {
585 if(newPosition >= __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->pos - __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferPos && newPosition < __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->pos + __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferSize)
586 {
587 if(newPosition < __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->pos - __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferPos + __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferCount)
588 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferPos += newPosition - __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->pos;
589 else
590 {
591 unsigned int read = newPosition - __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->pos - __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferCount;
592
593 if(read < __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferCount * 2)
594 {
595 if(read > __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferSize)
596 {
597 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferCount = 0;
598 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferPos = 0;
599 }
600 else
601 {
602 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
603 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle;
604
605 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
606 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle, __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->pos - __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferPos + __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferCount, 0);
607 read = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))__extension__ ({
608 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle;
609
610 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
611 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle, __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->buffer + __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferCount, 1, read);
612 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferPos += newPosition - __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->pos;
613 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferCount += read;
614 }
615 }
616 else
617 {
618 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferCount = 0;
619 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferPos = 0;
620 }
621 }
622 }
623 else
624 {
625 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferCount = 0;
626 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferPos = 0;
627 }
628 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->eof = newPosition > __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->fileSize;
629 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->pos = newPosition;
630 }
631 return 0x1;
632 }
633
634 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BufferedFile_Tell(struct __ecereNameSpace__ecere__com__Instance * this)
635 {
636 struct __ecereNameSpace__ecere__sys__BufferedFile * __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile = (struct __ecereNameSpace__ecere__sys__BufferedFile *)(this ? (((char *)this) + structSize_File) : 0);
637
638 return __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->pos;
639 }
640
641 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BufferedFile_Eof(struct __ecereNameSpace__ecere__com__Instance * this)
642 {
643 struct __ecereNameSpace__ecere__sys__BufferedFile * __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile = (struct __ecereNameSpace__ecere__sys__BufferedFile *)(this ? (((char *)this) + structSize_File) : 0);
644
645 return __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->eof;
646 }
647
648 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BufferedFile_GetSize(struct __ecereNameSpace__ecere__com__Instance * this)
649 {
650 struct __ecereNameSpace__ecere__sys__BufferedFile * __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile = (struct __ecereNameSpace__ecere__sys__BufferedFile *)(this ? (((char *)this) + structSize_File) : 0);
651
652 return __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->fileSize;
653 }
654
655 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Truncate;
656
657 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BufferedFile_Truncate(struct __ecereNameSpace__ecere__com__Instance * this, unsigned int size)
658 {
659 unsigned int __simpleStruct1;
660 unsigned int __simpleStruct0;
661 struct __ecereNameSpace__ecere__sys__BufferedFile * __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile = (struct __ecereNameSpace__ecere__sys__BufferedFile *)(this ? (((char *)this) + structSize_File) : 0);
662 unsigned int bytesAhead = (unsigned int)(size - (__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->pos - __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferPos));
663
664 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, unsigned int size))__extension__ ({
665 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle;
666
667 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
668 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Truncate])(__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle, size);
669 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferCount = (__simpleStruct0 = __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferCount, (__simpleStruct0 < bytesAhead) ? __simpleStruct0 : bytesAhead);
670 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->fileSize = (__simpleStruct1 = __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->fileSize, (__simpleStruct1 < size) ? __simpleStruct1 : size);
671 return 0x1;
672 }
673
674 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Lock;
675
676 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BufferedFile_Lock(struct __ecereNameSpace__ecere__com__Instance * this, int type, uint64 start, uint64 length, unsigned int wait)
677 {
678 struct __ecereNameSpace__ecere__sys__BufferedFile * __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile = (struct __ecereNameSpace__ecere__sys__BufferedFile *)(this ? (((char *)this) + structSize_File) : 0);
679
680 return ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int type, uint64 start, uint64 length, unsigned int wait))__extension__ ({
681 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle;
682
683 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
684 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Lock])(__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle, type, start, length, wait);
685 }
686
687 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Unlock;
688
689 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BufferedFile_Unlock(struct __ecereNameSpace__ecere__com__Instance * this, uint64 start, uint64 length, unsigned int wait)
690 {
691 struct __ecereNameSpace__ecere__sys__BufferedFile * __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile = (struct __ecereNameSpace__ecere__sys__BufferedFile *)(this ? (((char *)this) + structSize_File) : 0);
692
693 return ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, uint64 start, uint64 length, unsigned int wait))__extension__ ({
694 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle;
695
696 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
697 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Unlock])(__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle, start, length, wait);
698 }
699
700 struct __ecereNameSpace__ecere__com__Instance * __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_Get_handle(struct __ecereNameSpace__ecere__com__Instance * this)
701 {
702 struct __ecereNameSpace__ecere__sys__BufferedFile * __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile = (struct __ecereNameSpace__ecere__sys__BufferedFile *)(this ? (((char *)this) + structSize_File) : 0);
703
704 return __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle;
705 }
706
707 void __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_Set_handle(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Instance * value)
708 {
709 struct __ecereNameSpace__ecere__sys__BufferedFile * __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile = (struct __ecereNameSpace__ecere__sys__BufferedFile *)(this ? (((char *)this) + structSize_File) : 0);
710
711 if(__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle)
712 (__ecereNameSpace__ecere__com__eInstance_DecRef(__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle), __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle = 0);
713 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle = value;
714 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferCount = 0;
715 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferPos = 0;
716 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->pos = 0;
717 if(__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle)
718 {
719 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->handle->_refCount++;
720 }
721 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_handle), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__sys__BufferedFile_handle);
722 }
723
724 unsigned int __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_Get_bufferSize(struct __ecereNameSpace__ecere__com__Instance * this)
725 {
726 struct __ecereNameSpace__ecere__sys__BufferedFile * __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile = (struct __ecereNameSpace__ecere__sys__BufferedFile *)(this ? (((char *)this) + structSize_File) : 0);
727
728 return __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferSize;
729 }
730
731 void __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_Set_bufferSize(struct __ecereNameSpace__ecere__com__Instance * this, unsigned int value)
732 {
733 struct __ecereNameSpace__ecere__sys__BufferedFile * __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile = (struct __ecereNameSpace__ecere__sys__BufferedFile *)(this ? (((char *)this) + structSize_File) : 0);
734
735 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferSize = value;
736 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->buffer = __ecereNameSpace__ecere__com__eSystem_Renew(__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->buffer, sizeof(unsigned char) * (value));
737 if(__ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferCount > __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferSize)
738 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferCount = __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferSize;
739 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_bufferSize), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__sys__BufferedFile_bufferSize);
740 }
741
742 unsigned int __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_Get_bufferRead(struct __ecereNameSpace__ecere__com__Instance * this)
743 {
744 struct __ecereNameSpace__ecere__sys__BufferedFile * __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile = (struct __ecereNameSpace__ecere__sys__BufferedFile *)(this ? (((char *)this) + structSize_File) : 0);
745
746 return __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferRead;
747 }
748
749 void __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_Set_bufferRead(struct __ecereNameSpace__ecere__com__Instance * this, unsigned int value)
750 {
751 struct __ecereNameSpace__ecere__sys__BufferedFile * __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile = (struct __ecereNameSpace__ecere__sys__BufferedFile *)(this ? (((char *)this) + structSize_File) : 0);
752
753 __ecerePointer___ecereNameSpace__ecere__sys__BufferedFile->bufferRead = value;
754 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_bufferRead), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__sys__BufferedFile_bufferRead);
755 }
756
757 extern struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__sys__FileOpen(char *  fileName, int mode);
758
759 extern void *  __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
760
761 void __ecereProp___ecereNameSpace__ecere__sys__File_Set_buffered(struct __ecereNameSpace__ecere__com__Instance * this, unsigned int value);
762
763 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__sys__File_buffered;
764
765 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_GetSize;
766
767 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__sys__FileOpenBuffered(char * fileName, int mode)
768 {
769 struct __ecereNameSpace__ecere__com__Instance * result = (((void *)0));
770
771 {
772 struct __ecereNameSpace__ecere__com__Instance * f = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__BufferedFile);
773
774 if(f)
775 {
776 ((struct __ecereNameSpace__ecere__sys__BufferedFile *)(((char *)f + structSize_File)))->mode = mode;
777 ((struct __ecereNameSpace__ecere__sys__BufferedFile *)(((char *)f + structSize_File)))->pos = 0;
778 if((__extension__ ({
779 void * __ecTemp1 = (f);
780
781 __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_Set_handle(__ecTemp1, __ecereNameSpace__ecere__sys__FileOpen(fileName, mode));
782 __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_Get_handle(__ecTemp1);
783 })))
784 {
785 __ecereProp___ecereNameSpace__ecere__sys__File_Set_buffered(__ecereProp___ecereNameSpace__ecere__sys__BufferedFile_Get_handle(f), 0x1);
786 ((struct __ecereNameSpace__ecere__sys__BufferedFile *)(((char *)f + structSize_File)))->fileSize = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
787 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_Get_handle(f);
788
789 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
790 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_GetSize])(__ecereProp___ecereNameSpace__ecere__sys__BufferedFile_Get_handle(f));
791 result = f;
792 }
793 if(!result)
794 (__ecereNameSpace__ecere__com__eInstance_DecRef(f), f = 0);
795 }
796 }
797 return result;
798 }
799
800 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_RegisterClass(int type, char *  name, char *  baseName, int size, int sizeClass, unsigned int (*  Constructor)(void * ), void (*  Destructor)(void * ), struct __ecereNameSpace__ecere__com__Instance * module, int declMode, int inheritanceAccess);
801
802 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
803
804 struct __ecereNameSpace__ecere__com__NameSpace
805 {
806 char *  name;
807 struct __ecereNameSpace__ecere__com__NameSpace *  btParent;
808 struct __ecereNameSpace__ecere__com__NameSpace *  left;
809 struct __ecereNameSpace__ecere__com__NameSpace *  right;
810 int depth;
811 struct __ecereNameSpace__ecere__com__NameSpace *  parent;
812 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
813 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
814 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
815 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
816 } __attribute__ ((gcc_struct));
817
818 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
819
820 struct __ecereNameSpace__ecere__com__Module
821 {
822 struct __ecereNameSpace__ecere__com__Instance * application;
823 struct __ecereNameSpace__ecere__sys__OldList classes;
824 struct __ecereNameSpace__ecere__sys__OldList defines;
825 struct __ecereNameSpace__ecere__sys__OldList functions;
826 struct __ecereNameSpace__ecere__sys__OldList modules;
827 struct __ecereNameSpace__ecere__com__Instance * prev;
828 struct __ecereNameSpace__ecere__com__Instance * next;
829 char *  name;
830 void *  library;
831 void *  Unload;
832 int importType;
833 int origImportType;
834 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
835 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
836 } __attribute__ ((gcc_struct));
837
838 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
839
840 extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddMethod(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, char *  type, void *  function, int declMode);
841
842 extern struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_AddProperty(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, char *  dataType, void *  setStmt, void *  getStmt, int declMode);
843
844 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
845
846 struct __ecereNameSpace__ecere__com__GlobalFunction;
847
848 extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_RegisterFunction(char *  name, char *  type, void *  func, struct __ecereNameSpace__ecere__com__Instance * module, int declMode);
849
850 void __ecereRegisterModule_BufferedFile(struct __ecereNameSpace__ecere__com__Instance * module)
851 {
852 struct __ecereNameSpace__ecere__com__Class * class;
853
854 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::sys::BufferedFile", "ecere::sys::File", sizeof(struct __ecereNameSpace__ecere__sys__BufferedFile), 0, __ecereConstructor___ecereNameSpace__ecere__sys__BufferedFile, __ecereDestructor___ecereNameSpace__ecere__sys__BufferedFile, module, 1, 1);
855 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
856 __ecereClass___ecereNameSpace__ecere__sys__BufferedFile = class;
857 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Seek", 0, __ecereMethod___ecereNameSpace__ecere__sys__BufferedFile_Seek, 1);
858 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Tell", 0, __ecereMethod___ecereNameSpace__ecere__sys__BufferedFile_Tell, 1);
859 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Read", 0, __ecereMethod___ecereNameSpace__ecere__sys__BufferedFile_Read, 1);
860 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Write", 0, __ecereMethod___ecereNameSpace__ecere__sys__BufferedFile_Write, 1);
861 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Getc", 0, __ecereMethod___ecereNameSpace__ecere__sys__BufferedFile_Getc, 1);
862 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Putc", 0, __ecereMethod___ecereNameSpace__ecere__sys__BufferedFile_Putc, 1);
863 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Puts", 0, __ecereMethod___ecereNameSpace__ecere__sys__BufferedFile_Puts, 1);
864 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Eof", 0, __ecereMethod___ecereNameSpace__ecere__sys__BufferedFile_Eof, 1);
865 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Truncate", 0, __ecereMethod___ecereNameSpace__ecere__sys__BufferedFile_Truncate, 1);
866 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetSize", 0, __ecereMethod___ecereNameSpace__ecere__sys__BufferedFile_GetSize, 1);
867 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "CloseInput", 0, __ecereMethod___ecereNameSpace__ecere__sys__BufferedFile_CloseInput, 1);
868 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "CloseOutput", 0, __ecereMethod___ecereNameSpace__ecere__sys__BufferedFile_CloseOutput, 1);
869 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Lock", 0, __ecereMethod___ecereNameSpace__ecere__sys__BufferedFile_Lock, 1);
870 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Unlock", 0, __ecereMethod___ecereNameSpace__ecere__sys__BufferedFile_Unlock, 1);
871 __ecerePropM___ecereNameSpace__ecere__sys__BufferedFile_handle = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "handle", "ecere::sys::File", __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_Set_handle, __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_Get_handle, 1);
872 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
873 __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_handle = __ecerePropM___ecereNameSpace__ecere__sys__BufferedFile_handle, __ecerePropM___ecereNameSpace__ecere__sys__BufferedFile_handle = (void *)0;
874 __ecerePropM___ecereNameSpace__ecere__sys__BufferedFile_bufferSize = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "bufferSize", "uint", __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_Set_bufferSize, __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_Get_bufferSize, 1);
875 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
876 __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_bufferSize = __ecerePropM___ecereNameSpace__ecere__sys__BufferedFile_bufferSize, __ecerePropM___ecereNameSpace__ecere__sys__BufferedFile_bufferSize = (void *)0;
877 __ecerePropM___ecereNameSpace__ecere__sys__BufferedFile_bufferRead = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "bufferRead", "uint", __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_Set_bufferRead, __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_Get_bufferRead, 1);
878 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
879 __ecereProp___ecereNameSpace__ecere__sys__BufferedFile_bufferRead = __ecerePropM___ecereNameSpace__ecere__sys__BufferedFile_bufferRead, __ecerePropM___ecereNameSpace__ecere__sys__BufferedFile_bufferRead = (void *)0;
880 if(class)
881 class->fixed = (unsigned int)1;
882 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::FileOpenBuffered", "ecere::sys::BufferedFile ecere::sys::FileOpenBuffered(char * fileName, ecere::sys::FileOpenMode mode)", __ecereNameSpace__ecere__sys__FileOpenBuffered, module, 1);
883 }
884
885 void __ecereUnregisterModule_BufferedFile(struct __ecereNameSpace__ecere__com__Instance * module)
886 {
887
888 __ecerePropM___ecereNameSpace__ecere__sys__BufferedFile_handle = (void *)0;
889 __ecerePropM___ecereNameSpace__ecere__sys__BufferedFile_bufferSize = (void *)0;
890 __ecerePropM___ecereNameSpace__ecere__sys__BufferedFile_bufferRead = (void *)0;
891 }
892