compiler/libec; ecere; ide: Safer default virtual method calls
[sdk] / compiler / bootstrap / ecere / bootstrap / TempFile.c
1 /* Code generated from eC source file: TempFile.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 ecere_stdcall __attribute__((__stdcall__))
41 #      define ecere_gcc_struct __attribute__((gcc_struct))
42 #   else
43 #      define ecere_stdcall __stdcall
44 #      define ecere_gcc_struct
45 #   endif
46 #else
47 #   define ecere_stdcall
48 #   define ecere_gcc_struct
49 #endif
50 #include <stdint.h>
51 #include <sys/types.h>
52 struct __ecereNameSpace__ecere__sys__TempFile
53 {
54 unsigned char * buffer;
55 unsigned int size;
56 unsigned int position;
57 unsigned int eof;
58 int openMode;
59 unsigned int allocated;
60 } ecere_gcc_struct;
61
62 struct __ecereNameSpace__ecere__sys__BTNode;
63
64 struct __ecereNameSpace__ecere__sys__OldList
65 {
66 void *  first;
67 void *  last;
68 int count;
69 unsigned int offset;
70 unsigned int circ;
71 } ecere_gcc_struct;
72
73 struct __ecereNameSpace__ecere__com__DataValue
74 {
75 union
76 {
77 char c;
78 unsigned char uc;
79 short s;
80 unsigned short us;
81 int i;
82 unsigned int ui;
83 void *  p;
84 float f;
85 double d;
86 long long i64;
87 uint64 ui64;
88 } ecere_gcc_struct __anon1;
89 } ecere_gcc_struct;
90
91 struct __ecereNameSpace__ecere__com__SerialBuffer
92 {
93 unsigned char *  _buffer;
94 unsigned int count;
95 unsigned int _size;
96 unsigned int pos;
97 } ecere_gcc_struct;
98
99 extern void *  __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
100
101 extern void *  __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
102
103 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew(void *  memory, unsigned int size);
104
105 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew0(void *  memory, unsigned int size);
106
107 extern void __ecereNameSpace__ecere__com__eSystem_Delete(void *  memory);
108
109 extern void *  memcpy(void * , const void * , size_t size);
110
111 extern size_t strlen(const char * );
112
113 struct __ecereNameSpace__ecere__com__Property;
114
115 extern void __ecereNameSpace__ecere__com__eInstance_Watch(void *  instance, struct __ecereNameSpace__ecere__com__Property * _property, void *  object, void (*  callback)(void * , void * ));
116
117 static __attribute__((unused)) struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__TempFile_openMode, * __ecerePropM___ecereNameSpace__ecere__sys__TempFile_openMode;
118
119 static __attribute__((unused)) struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__TempFile_buffer, * __ecerePropM___ecereNameSpace__ecere__sys__TempFile_buffer;
120
121 struct __ecereNameSpace__ecere__com__Class;
122
123 struct __ecereNameSpace__ecere__com__Instance
124 {
125 void * *  _vTbl;
126 struct __ecereNameSpace__ecere__com__Class * _class;
127 int _refCount;
128 } ecere_gcc_struct;
129
130 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name);
131
132 extern void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name, long long value);
133
134 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);
135
136 struct __ecereNameSpace__ecere__com__Property
137 {
138 struct __ecereNameSpace__ecere__com__Property * prev;
139 struct __ecereNameSpace__ecere__com__Property * next;
140 const char *  name;
141 unsigned int isProperty;
142 int memberAccess;
143 int id;
144 struct __ecereNameSpace__ecere__com__Class * _class;
145 const char *  dataTypeString;
146 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
147 struct __ecereNameSpace__ecere__com__Instance * dataType;
148 void (*  Set)(void * , int);
149 int (*  Get)(void * );
150 unsigned int (*  IsSet)(void * );
151 void *  data;
152 void *  symbol;
153 int vid;
154 unsigned int conversion;
155 unsigned int watcherOffset;
156 const char *  category;
157 unsigned int compiled;
158 unsigned int selfWatchable;
159 unsigned int isWatchable;
160 } ecere_gcc_struct;
161
162 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
163
164 extern void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, const char *  name, void *  function);
165
166 extern void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance);
167
168 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);
169
170 extern void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
171
172 int __ecereProp___ecereNameSpace__ecere__sys__TempFile_Get_openMode(struct __ecereNameSpace__ecere__com__Instance * this);
173
174 void __ecereProp___ecereNameSpace__ecere__sys__TempFile_Set_openMode(struct __ecereNameSpace__ecere__com__Instance * this, int value);
175
176 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Read;
177
178 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Write;
179
180 struct __ecereNameSpace__ecere__sys__BinaryTree;
181
182 struct __ecereNameSpace__ecere__sys__BinaryTree
183 {
184 struct __ecereNameSpace__ecere__sys__BTNode * root;
185 int count;
186 int (*  CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
187 void (*  FreeKey)(void *  key);
188 } ecere_gcc_struct;
189
190 struct __ecereNameSpace__ecere__com__DataMember;
191
192 struct __ecereNameSpace__ecere__com__DataMember
193 {
194 struct __ecereNameSpace__ecere__com__DataMember * prev;
195 struct __ecereNameSpace__ecere__com__DataMember * next;
196 const char *  name;
197 unsigned int isProperty;
198 int memberAccess;
199 int id;
200 struct __ecereNameSpace__ecere__com__Class * _class;
201 const char *  dataTypeString;
202 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
203 struct __ecereNameSpace__ecere__com__Instance * dataType;
204 int type;
205 int offset;
206 int memberID;
207 struct __ecereNameSpace__ecere__sys__OldList members;
208 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
209 int memberOffset;
210 short structAlignment;
211 short pointerAlignment;
212 } ecere_gcc_struct;
213
214 struct __ecereNameSpace__ecere__com__Method;
215
216 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
217 {
218 union
219 {
220 struct
221 {
222 const char *  dataTypeString;
223 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
224 } ecere_gcc_struct __anon1;
225 struct __ecereNameSpace__ecere__com__DataValue expression;
226 struct
227 {
228 const char *  memberString;
229 union
230 {
231 struct __ecereNameSpace__ecere__com__DataMember * member;
232 struct __ecereNameSpace__ecere__com__Property * prop;
233 struct __ecereNameSpace__ecere__com__Method * method;
234 } ecere_gcc_struct __anon1;
235 } ecere_gcc_struct __anon2;
236 } ecere_gcc_struct __anon1;
237 } ecere_gcc_struct;
238
239 struct __ecereNameSpace__ecere__com__Method
240 {
241 const char *  name;
242 struct __ecereNameSpace__ecere__com__Method * parent;
243 struct __ecereNameSpace__ecere__com__Method * left;
244 struct __ecereNameSpace__ecere__com__Method * right;
245 int depth;
246 int (*  function)();
247 int vid;
248 int type;
249 struct __ecereNameSpace__ecere__com__Class * _class;
250 void *  symbol;
251 const char *  dataTypeString;
252 struct __ecereNameSpace__ecere__com__Instance * dataType;
253 int memberAccess;
254 } ecere_gcc_struct;
255
256 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);
257
258 struct __ecereNameSpace__ecere__com__Module;
259
260 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);
261
262 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
263
264 struct __ecereNameSpace__ecere__com__NameSpace;
265
266 struct __ecereNameSpace__ecere__com__NameSpace
267 {
268 const char *  name;
269 struct __ecereNameSpace__ecere__com__NameSpace *  btParent;
270 struct __ecereNameSpace__ecere__com__NameSpace *  left;
271 struct __ecereNameSpace__ecere__com__NameSpace *  right;
272 int depth;
273 struct __ecereNameSpace__ecere__com__NameSpace *  parent;
274 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
275 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
276 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
277 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
278 } ecere_gcc_struct;
279
280 struct __ecereNameSpace__ecere__com__Class
281 {
282 struct __ecereNameSpace__ecere__com__Class * prev;
283 struct __ecereNameSpace__ecere__com__Class * next;
284 const char *  name;
285 int offset;
286 int structSize;
287 void * *  _vTbl;
288 int vTblSize;
289 unsigned int (*  Constructor)(void * );
290 void (*  Destructor)(void * );
291 int offsetClass;
292 int sizeClass;
293 struct __ecereNameSpace__ecere__com__Class * base;
294 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
295 struct __ecereNameSpace__ecere__sys__BinaryTree members;
296 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
297 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
298 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
299 struct __ecereNameSpace__ecere__sys__OldList derivatives;
300 int memberID;
301 int startMemberID;
302 int type;
303 struct __ecereNameSpace__ecere__com__Instance * module;
304 struct __ecereNameSpace__ecere__com__NameSpace *  nameSpace;
305 const char *  dataTypeString;
306 struct __ecereNameSpace__ecere__com__Instance * dataType;
307 int typeSize;
308 int defaultAlignment;
309 void (*  Initialize)();
310 int memberOffset;
311 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
312 const char *  designerClass;
313 unsigned int noExpansion;
314 const char *  defaultProperty;
315 unsigned int comRedefinition;
316 int count;
317 int isRemote;
318 unsigned int internalDecl;
319 void *  data;
320 unsigned int computeSize;
321 short structAlignment;
322 short pointerAlignment;
323 int destructionWatchOffset;
324 unsigned int fixed;
325 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
326 int inheritanceAccess;
327 const char *  fullName;
328 void *  symbol;
329 struct __ecereNameSpace__ecere__sys__OldList conversions;
330 struct __ecereNameSpace__ecere__sys__OldList templateParams;
331 struct __ecereNameSpace__ecere__com__ClassTemplateArgument *  templateArgs;
332 struct __ecereNameSpace__ecere__com__Class * templateClass;
333 struct __ecereNameSpace__ecere__sys__OldList templatized;
334 int numParams;
335 unsigned int isInstanceClass;
336 unsigned int byValueSystemClass;
337 } ecere_gcc_struct;
338
339 struct __ecereNameSpace__ecere__com__Application
340 {
341 int argc;
342 const char * *  argv;
343 int exitCode;
344 unsigned int isGUIApp;
345 struct __ecereNameSpace__ecere__sys__OldList allModules;
346 char *  parsedCommand;
347 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
348 } ecere_gcc_struct;
349
350 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__TempFile;
351
352 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
353
354 struct __ecereNameSpace__ecere__com__Module
355 {
356 struct __ecereNameSpace__ecere__com__Instance * application;
357 struct __ecereNameSpace__ecere__sys__OldList classes;
358 struct __ecereNameSpace__ecere__sys__OldList defines;
359 struct __ecereNameSpace__ecere__sys__OldList functions;
360 struct __ecereNameSpace__ecere__sys__OldList modules;
361 struct __ecereNameSpace__ecere__com__Instance * prev;
362 struct __ecereNameSpace__ecere__com__Instance * next;
363 const char *  name;
364 void *  library;
365 void *  Unload;
366 int importType;
367 int origImportType;
368 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
369 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
370 } ecere_gcc_struct;
371
372 unsigned int __ecereConstructor___ecereNameSpace__ecere__sys__TempFile(struct __ecereNameSpace__ecere__com__Instance * this)
373 {
374 __attribute__((unused)) struct __ecereNameSpace__ecere__sys__TempFile * __ecerePointer___ecereNameSpace__ecere__sys__TempFile = (struct __ecereNameSpace__ecere__sys__TempFile *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__TempFile->offset) : 0);
375
376 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->openMode = 5;
377 return 1;
378 }
379
380 void __ecereDestructor___ecereNameSpace__ecere__sys__TempFile(struct __ecereNameSpace__ecere__com__Instance * this)
381 {
382 __attribute__((unused)) struct __ecereNameSpace__ecere__sys__TempFile * __ecerePointer___ecereNameSpace__ecere__sys__TempFile = (struct __ecereNameSpace__ecere__sys__TempFile *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__TempFile->offset) : 0);
383
384 {
385 (__ecereNameSpace__ecere__com__eSystem_Delete(__ecerePointer___ecereNameSpace__ecere__sys__TempFile->buffer), __ecerePointer___ecereNameSpace__ecere__sys__TempFile->buffer = 0);
386 }
387 }
388
389 int __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Read(struct __ecereNameSpace__ecere__com__Instance * this, unsigned char * buffer, unsigned int size, unsigned int count)
390 {
391 int __simpleStruct0;
392 __attribute__((unused)) struct __ecereNameSpace__ecere__sys__TempFile * __ecerePointer___ecereNameSpace__ecere__sys__TempFile = (struct __ecereNameSpace__ecere__sys__TempFile *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__TempFile->offset) : 0);
393 int readSize = size * count;
394 int read = (__simpleStruct0 = __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size - __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position, (readSize < __simpleStruct0) ? readSize : __simpleStruct0);
395
396 if(__ecerePointer___ecereNameSpace__ecere__sys__TempFile->position >= __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size)
397 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->eof = 1;
398 if(buffer)
399 memcpy(buffer, __ecerePointer___ecereNameSpace__ecere__sys__TempFile->buffer + __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position, read);
400 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position += read;
401 return read / size;
402 }
403
404 int __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Write(struct __ecereNameSpace__ecere__com__Instance * this, const unsigned char * buffer, unsigned int size, unsigned int count)
405 {
406 __attribute__((unused)) struct __ecereNameSpace__ecere__sys__TempFile * __ecerePointer___ecereNameSpace__ecere__sys__TempFile = (struct __ecereNameSpace__ecere__sys__TempFile *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__TempFile->offset) : 0);
407 int writeSize = size * count;
408 int written = writeSize;
409
410 if(__ecerePointer___ecereNameSpace__ecere__sys__TempFile->size - __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position < writeSize)
411 {
412 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size += writeSize - (__ecerePointer___ecereNameSpace__ecere__sys__TempFile->size - __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position);
413 if(__ecerePointer___ecereNameSpace__ecere__sys__TempFile->allocated < __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size)
414 {
415 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->allocated *= 2;
416 if(__ecerePointer___ecereNameSpace__ecere__sys__TempFile->allocated < __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size)
417 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->allocated = __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size * 2;
418 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->buffer = __ecereNameSpace__ecere__com__eSystem_Renew(__ecerePointer___ecereNameSpace__ecere__sys__TempFile->buffer, sizeof(unsigned char) * (__ecerePointer___ecereNameSpace__ecere__sys__TempFile->allocated));
419 }
420 }
421 memcpy(__ecerePointer___ecereNameSpace__ecere__sys__TempFile->buffer + __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position, buffer, writeSize);
422 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position += written;
423 return written / size;
424 }
425
426 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Getc(struct __ecereNameSpace__ecere__com__Instance * this, char * ch)
427 {
428 __attribute__((unused)) struct __ecereNameSpace__ecere__sys__TempFile * __ecerePointer___ecereNameSpace__ecere__sys__TempFile = (struct __ecereNameSpace__ecere__sys__TempFile *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__TempFile->offset) : 0);
429 int read = (__extension__ ({
430 int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count);
431
432 __internal_VirtualMethod = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))__extension__ ({
433 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
434
435 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__TempFile->_vTbl;
436 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read]);
437 __internal_VirtualMethod ? __internal_VirtualMethod(this, ch, 1, 1) : (int)1;
438 }));
439
440 return !__ecerePointer___ecereNameSpace__ecere__sys__TempFile->eof && read != 0;
441 }
442
443 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Putc(struct __ecereNameSpace__ecere__com__Instance * this, char ch)
444 {
445 __attribute__((unused)) struct __ecereNameSpace__ecere__sys__TempFile * __ecerePointer___ecereNameSpace__ecere__sys__TempFile = (struct __ecereNameSpace__ecere__sys__TempFile *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__TempFile->offset) : 0);
446 int written = (__extension__ ({
447 int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const void *  buffer, unsigned int size, unsigned int count);
448
449 __internal_VirtualMethod = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, const void *  buffer, unsigned int size, unsigned int count))__extension__ ({
450 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
451
452 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__TempFile->_vTbl;
453 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Write]);
454 __internal_VirtualMethod ? __internal_VirtualMethod(this, &ch, 1, 1) : (int)1;
455 }));
456
457 return written != 0;
458 }
459
460 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Puts(struct __ecereNameSpace__ecere__com__Instance * this, const char * string)
461 {
462 __attribute__((unused)) struct __ecereNameSpace__ecere__sys__TempFile * __ecerePointer___ecereNameSpace__ecere__sys__TempFile = (struct __ecereNameSpace__ecere__sys__TempFile *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__TempFile->offset) : 0);
463 int len = string ? strlen(string) : 0;
464 int written = (__extension__ ({
465 int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const void *  buffer, unsigned int size, unsigned int count);
466
467 __internal_VirtualMethod = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, const void *  buffer, unsigned int size, unsigned int count))__extension__ ({
468 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
469
470 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__TempFile->_vTbl;
471 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Write]);
472 __internal_VirtualMethod ? __internal_VirtualMethod(this, string, 1, len) : (int)1;
473 }));
474
475 return written == len;
476 }
477
478 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Seek(struct __ecereNameSpace__ecere__com__Instance * this, int pos, int mode)
479 {
480 __attribute__((unused)) struct __ecereNameSpace__ecere__sys__TempFile * __ecerePointer___ecereNameSpace__ecere__sys__TempFile = (struct __ecereNameSpace__ecere__sys__TempFile *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__TempFile->offset) : 0);
481 unsigned int result = 1;
482 unsigned int increase = 0;
483
484 switch(mode)
485 {
486 case 0:
487 {
488 if(pos >= __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size)
489 {
490 if(__ecerePointer___ecereNameSpace__ecere__sys__TempFile->openMode == 4)
491 {
492 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position = pos;
493 increase = pos - __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size;
494 }
495 else
496 {
497 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position = __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size;
498 result = 0;
499 }
500 }
501 else if(pos < 0)
502 {
503 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position = 0;
504 result = 0;
505 }
506 else
507 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position = pos;
508 break;
509 }
510 case 1:
511 {
512 if(__ecerePointer___ecereNameSpace__ecere__sys__TempFile->position + pos >= __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size)
513 {
514 if(__ecerePointer___ecereNameSpace__ecere__sys__TempFile->openMode == 4)
515 {
516 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position += pos;
517 increase = __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position - __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size;
518 }
519 else
520 {
521 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position = __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size;
522 result = 0;
523 }
524 }
525 else if((int)__ecerePointer___ecereNameSpace__ecere__sys__TempFile->position + pos < 0)
526 {
527 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position = 0;
528 result = 0;
529 }
530 else
531 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position += pos;
532 break;
533 }
534 case 2:
535 {
536 if((int)__ecerePointer___ecereNameSpace__ecere__sys__TempFile->size + pos >= (int)__ecerePointer___ecereNameSpace__ecere__sys__TempFile->size)
537 {
538 if(__ecerePointer___ecereNameSpace__ecere__sys__TempFile->openMode == 4)
539 {
540 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position = __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size + pos;
541 increase = __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position - __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size;
542 }
543 else
544 {
545 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position = __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size;
546 result = 0;
547 }
548 }
549 else if((int)__ecerePointer___ecereNameSpace__ecere__sys__TempFile->size + pos < 0)
550 {
551 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position = 0;
552 result = 0;
553 }
554 else
555 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position = __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size + pos;
556 break;
557 }
558 }
559 if(result)
560 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->eof = 0;
561 if(increase)
562 {
563 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size += increase;
564 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->buffer = __ecereNameSpace__ecere__com__eSystem_Renew(__ecerePointer___ecereNameSpace__ecere__sys__TempFile->buffer, sizeof(unsigned char) * (__ecerePointer___ecereNameSpace__ecere__sys__TempFile->size));
565 }
566 return result;
567 }
568
569 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Tell(struct __ecereNameSpace__ecere__com__Instance * this)
570 {
571 __attribute__((unused)) struct __ecereNameSpace__ecere__sys__TempFile * __ecerePointer___ecereNameSpace__ecere__sys__TempFile = (struct __ecereNameSpace__ecere__sys__TempFile *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__TempFile->offset) : 0);
572
573 return __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position;
574 }
575
576 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Eof(struct __ecereNameSpace__ecere__com__Instance * this)
577 {
578 __attribute__((unused)) struct __ecereNameSpace__ecere__sys__TempFile * __ecerePointer___ecereNameSpace__ecere__sys__TempFile = (struct __ecereNameSpace__ecere__sys__TempFile *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__TempFile->offset) : 0);
579
580 return __ecerePointer___ecereNameSpace__ecere__sys__TempFile->eof;
581 }
582
583 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__TempFile_GetSize(struct __ecereNameSpace__ecere__com__Instance * this)
584 {
585 __attribute__((unused)) struct __ecereNameSpace__ecere__sys__TempFile * __ecerePointer___ecereNameSpace__ecere__sys__TempFile = (struct __ecereNameSpace__ecere__sys__TempFile *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__TempFile->offset) : 0);
586
587 return __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size;
588 }
589
590 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Truncate(struct __ecereNameSpace__ecere__com__Instance * this, unsigned int size)
591 {
592 __attribute__((unused)) struct __ecereNameSpace__ecere__sys__TempFile * __ecerePointer___ecereNameSpace__ecere__sys__TempFile = (struct __ecereNameSpace__ecere__sys__TempFile *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__TempFile->offset) : 0);
593
594 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->buffer = __ecereNameSpace__ecere__com__eSystem_Renew(__ecerePointer___ecereNameSpace__ecere__sys__TempFile->buffer, sizeof(unsigned char) * (size));
595 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size = (unsigned int)size;
596 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->allocated = (unsigned int)size;
597 if(__ecerePointer___ecereNameSpace__ecere__sys__TempFile->position > size)
598 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position = (unsigned int)size;
599 return 1;
600 }
601
602 int __ecereProp___ecereNameSpace__ecere__sys__TempFile_Get_openMode(struct __ecereNameSpace__ecere__com__Instance * this)
603 {
604 __attribute__((unused)) struct __ecereNameSpace__ecere__sys__TempFile * __ecerePointer___ecereNameSpace__ecere__sys__TempFile = (struct __ecereNameSpace__ecere__sys__TempFile *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__TempFile->offset) : 0);
605
606 return __ecerePointer___ecereNameSpace__ecere__sys__TempFile->openMode;
607 }
608
609 void __ecereProp___ecereNameSpace__ecere__sys__TempFile_Set_openMode(struct __ecereNameSpace__ecere__com__Instance * this, int value)
610 {
611 __attribute__((unused)) struct __ecereNameSpace__ecere__sys__TempFile * __ecerePointer___ecereNameSpace__ecere__sys__TempFile = (struct __ecereNameSpace__ecere__sys__TempFile *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__TempFile->offset) : 0);
612
613 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->openMode = value;
614 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__sys__TempFile_openMode), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__sys__TempFile_openMode);
615 }
616
617 unsigned char *  __ecereProp___ecereNameSpace__ecere__sys__TempFile_Get_buffer(struct __ecereNameSpace__ecere__com__Instance * this)
618 {
619 __attribute__((unused)) struct __ecereNameSpace__ecere__sys__TempFile * __ecerePointer___ecereNameSpace__ecere__sys__TempFile = (struct __ecereNameSpace__ecere__sys__TempFile *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__sys__TempFile->offset) : 0);
620
621 return __ecerePointer___ecereNameSpace__ecere__sys__TempFile->buffer;
622 }
623
624 void __ecereUnregisterModule_TempFile(struct __ecereNameSpace__ecere__com__Instance * module)
625 {
626
627 __ecerePropM___ecereNameSpace__ecere__sys__TempFile_openMode = (void *)0;
628 __ecerePropM___ecereNameSpace__ecere__sys__TempFile_buffer = (void *)0;
629 }
630
631 void __ecereRegisterModule_TempFile(struct __ecereNameSpace__ecere__com__Instance * module)
632 {
633 struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class;
634
635 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::sys::TempFile", "ecere::sys::File", sizeof(struct __ecereNameSpace__ecere__sys__TempFile), 0, (void *)__ecereConstructor___ecereNameSpace__ecere__sys__TempFile, (void *)__ecereDestructor___ecereNameSpace__ecere__sys__TempFile, module, 1, 1);
636 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)
637 __ecereClass___ecereNameSpace__ecere__sys__TempFile = class;
638 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Seek", 0, __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Seek, 1);
639 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Tell", 0, __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Tell, 1);
640 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Read", 0, __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Read, 1);
641 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Write", 0, __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Write, 1);
642 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Getc", 0, __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Getc, 1);
643 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Putc", 0, __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Putc, 1);
644 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Puts", 0, __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Puts, 1);
645 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Eof", 0, __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Eof, 1);
646 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Truncate", 0, __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Truncate, 1);
647 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetSize", 0, __ecereMethod___ecereNameSpace__ecere__sys__TempFile_GetSize, 1);
648 __ecerePropM___ecereNameSpace__ecere__sys__TempFile_openMode = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "openMode", "ecere::sys::FileOpenMode", __ecereProp___ecereNameSpace__ecere__sys__TempFile_Set_openMode, __ecereProp___ecereNameSpace__ecere__sys__TempFile_Get_openMode, 1);
649 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)
650 __ecereProp___ecereNameSpace__ecere__sys__TempFile_openMode = __ecerePropM___ecereNameSpace__ecere__sys__TempFile_openMode, __ecerePropM___ecereNameSpace__ecere__sys__TempFile_openMode = (void *)0;
651 __ecerePropM___ecereNameSpace__ecere__sys__TempFile_buffer = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "buffer", "byte *", 0, __ecereProp___ecereNameSpace__ecere__sys__TempFile_Get_buffer, 1);
652 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)
653 __ecereProp___ecereNameSpace__ecere__sys__TempFile_buffer = __ecerePropM___ecereNameSpace__ecere__sys__TempFile_buffer, __ecerePropM___ecereNameSpace__ecere__sys__TempFile_buffer = (void *)0;
654 }
655