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