517bb2b42bd5ef664bcd6ab15f4d0e64bd26dfa6
[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 static __attribute__((unused)) struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__TempFile_openMode, * __ecerePropM___ecereNameSpace__ecere__sys__TempFile_openMode;
116
117 static __attribute__((unused)) struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__TempFile_buffer, * __ecerePropM___ecereNameSpace__ecere__sys__TempFile_buffer;
118
119 struct __ecereNameSpace__ecere__com__Class;
120
121 struct __ecereNameSpace__ecere__com__Instance
122 {
123 void * *  _vTbl;
124 struct __ecereNameSpace__ecere__com__Class * _class;
125 int _refCount;
126 } ecere_gcc_struct;
127
128 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name);
129
130 extern void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name, long long value);
131
132 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);
133
134 struct __ecereNameSpace__ecere__com__Property
135 {
136 struct __ecereNameSpace__ecere__com__Property * prev;
137 struct __ecereNameSpace__ecere__com__Property * next;
138 const char *  name;
139 unsigned int isProperty;
140 int memberAccess;
141 int id;
142 struct __ecereNameSpace__ecere__com__Class * _class;
143 const char *  dataTypeString;
144 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
145 struct __ecereNameSpace__ecere__com__Instance * dataType;
146 void (*  Set)(void * , int);
147 int (*  Get)(void * );
148 unsigned int (*  IsSet)(void * );
149 void *  data;
150 void *  symbol;
151 int vid;
152 unsigned int conversion;
153 unsigned int watcherOffset;
154 const char *  category;
155 unsigned int compiled;
156 unsigned int selfWatchable;
157 unsigned int isWatchable;
158 } ecere_gcc_struct;
159
160 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
161
162 extern void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, const char *  name, void *  function);
163
164 extern void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance);
165
166 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);
167
168 extern void __ecereNameSpace__ecere__com__eInstance_Watch(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property, void *  object, void (*  callback)(void * , void * ));
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 void *  bindingsClass;
338 } ecere_gcc_struct;
339
340 struct __ecereNameSpace__ecere__com__Application
341 {
342 int argc;
343 const char * *  argv;
344 int exitCode;
345 unsigned int isGUIApp;
346 struct __ecereNameSpace__ecere__sys__OldList allModules;
347 char *  parsedCommand;
348 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
349 } ecere_gcc_struct;
350
351 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__TempFile;
352
353 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
354
355 struct __ecereNameSpace__ecere__com__Module
356 {
357 struct __ecereNameSpace__ecere__com__Instance * application;
358 struct __ecereNameSpace__ecere__sys__OldList classes;
359 struct __ecereNameSpace__ecere__sys__OldList defines;
360 struct __ecereNameSpace__ecere__sys__OldList functions;
361 struct __ecereNameSpace__ecere__sys__OldList modules;
362 struct __ecereNameSpace__ecere__com__Instance * prev;
363 struct __ecereNameSpace__ecere__com__Instance * next;
364 const char *  name;
365 void *  library;
366 void *  Unload;
367 int importType;
368 int origImportType;
369 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
370 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
371 } ecere_gcc_struct;
372
373 unsigned int __ecereConstructor___ecereNameSpace__ecere__sys__TempFile(struct __ecereNameSpace__ecere__com__Instance * this)
374 {
375 __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);
376
377 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->openMode = 5;
378 return 1;
379 }
380
381 void __ecereDestructor___ecereNameSpace__ecere__sys__TempFile(struct __ecereNameSpace__ecere__com__Instance * this)
382 {
383 __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);
384
385 {
386 (__ecereNameSpace__ecere__com__eSystem_Delete(__ecerePointer___ecereNameSpace__ecere__sys__TempFile->buffer), __ecerePointer___ecereNameSpace__ecere__sys__TempFile->buffer = 0);
387 }
388 }
389
390 int __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Read(struct __ecereNameSpace__ecere__com__Instance * this, unsigned char * buffer, unsigned int size, unsigned int count)
391 {
392 int __simpleStruct0;
393 __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);
394 int readSize = size * count;
395 int read = (__simpleStruct0 = __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size - __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position, (readSize < __simpleStruct0) ? readSize : __simpleStruct0);
396
397 if(__ecerePointer___ecereNameSpace__ecere__sys__TempFile->position >= __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size)
398 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->eof = 1;
399 if(buffer)
400 memcpy(buffer, __ecerePointer___ecereNameSpace__ecere__sys__TempFile->buffer + __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position, read);
401 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position += read;
402 return read / size;
403 }
404
405 int __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Write(struct __ecereNameSpace__ecere__com__Instance * this, const unsigned char * buffer, unsigned int size, unsigned int count)
406 {
407 __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);
408 int writeSize = size * count;
409 int written = writeSize;
410
411 if(__ecerePointer___ecereNameSpace__ecere__sys__TempFile->size - __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position < writeSize)
412 {
413 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size += writeSize - (__ecerePointer___ecereNameSpace__ecere__sys__TempFile->size - __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position);
414 if(__ecerePointer___ecereNameSpace__ecere__sys__TempFile->allocated < __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size)
415 {
416 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->allocated *= 2;
417 if(__ecerePointer___ecereNameSpace__ecere__sys__TempFile->allocated < __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size)
418 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->allocated = __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size * 2;
419 __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));
420 }
421 }
422 memcpy(__ecerePointer___ecereNameSpace__ecere__sys__TempFile->buffer + __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position, buffer, writeSize);
423 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position += written;
424 return written / size;
425 }
426
427 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Getc(struct __ecereNameSpace__ecere__com__Instance * this, char * ch)
428 {
429 __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);
430 int read = (__extension__ ({
431 int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count);
432
433 __internal_VirtualMethod = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))__extension__ ({
434 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
435
436 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__TempFile->_vTbl;
437 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read]);
438 __internal_VirtualMethod ? __internal_VirtualMethod(this, ch, 1, 1) : (int)1;
439 }));
440
441 return !__ecerePointer___ecereNameSpace__ecere__sys__TempFile->eof && read != 0;
442 }
443
444 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Putc(struct __ecereNameSpace__ecere__com__Instance * this, char ch)
445 {
446 __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);
447 int written = (__extension__ ({
448 int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const void *  buffer, unsigned int size, unsigned int count);
449
450 __internal_VirtualMethod = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, const void *  buffer, unsigned int size, unsigned int count))__extension__ ({
451 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
452
453 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__TempFile->_vTbl;
454 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Write]);
455 __internal_VirtualMethod ? __internal_VirtualMethod(this, &ch, 1, 1) : (int)1;
456 }));
457
458 return written != 0;
459 }
460
461 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Puts(struct __ecereNameSpace__ecere__com__Instance * this, const char * string)
462 {
463 __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);
464 int len = string ? strlen(string) : 0;
465 int written = (__extension__ ({
466 int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const void *  buffer, unsigned int size, unsigned int count);
467
468 __internal_VirtualMethod = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, const void *  buffer, unsigned int size, unsigned int count))__extension__ ({
469 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = this;
470
471 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__TempFile->_vTbl;
472 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Write]);
473 __internal_VirtualMethod ? __internal_VirtualMethod(this, string, 1, len) : (int)1;
474 }));
475
476 return written == len;
477 }
478
479 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Seek(struct __ecereNameSpace__ecere__com__Instance * this, int pos, int mode)
480 {
481 __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);
482 unsigned int result = 1;
483 unsigned int increase = 0;
484
485 switch(mode)
486 {
487 case 0:
488 {
489 if(pos >= __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size)
490 {
491 if(__ecerePointer___ecereNameSpace__ecere__sys__TempFile->openMode == 4)
492 {
493 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position = pos;
494 increase = pos - __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size;
495 }
496 else
497 {
498 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position = __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size;
499 result = 0;
500 }
501 }
502 else if(pos < 0)
503 {
504 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position = 0;
505 result = 0;
506 }
507 else
508 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position = pos;
509 break;
510 }
511 case 1:
512 {
513 if(__ecerePointer___ecereNameSpace__ecere__sys__TempFile->position + pos >= __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size)
514 {
515 if(__ecerePointer___ecereNameSpace__ecere__sys__TempFile->openMode == 4)
516 {
517 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position += pos;
518 increase = __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position - __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size;
519 }
520 else
521 {
522 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position = __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size;
523 result = 0;
524 }
525 }
526 else if((int)__ecerePointer___ecereNameSpace__ecere__sys__TempFile->position + pos < 0)
527 {
528 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position = 0;
529 result = 0;
530 }
531 else
532 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position += pos;
533 break;
534 }
535 case 2:
536 {
537 if((int)__ecerePointer___ecereNameSpace__ecere__sys__TempFile->size + pos >= (int)__ecerePointer___ecereNameSpace__ecere__sys__TempFile->size)
538 {
539 if(__ecerePointer___ecereNameSpace__ecere__sys__TempFile->openMode == 4)
540 {
541 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position = __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size + pos;
542 increase = __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position - __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size;
543 }
544 else
545 {
546 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position = __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size;
547 result = 0;
548 }
549 }
550 else if((int)__ecerePointer___ecereNameSpace__ecere__sys__TempFile->size + pos < 0)
551 {
552 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position = 0;
553 result = 0;
554 }
555 else
556 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position = __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size + pos;
557 break;
558 }
559 }
560 if(result)
561 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->eof = 0;
562 if(increase)
563 {
564 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size += increase;
565 __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));
566 }
567 return result;
568 }
569
570 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Tell(struct __ecereNameSpace__ecere__com__Instance * this)
571 {
572 __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);
573
574 return __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position;
575 }
576
577 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Eof(struct __ecereNameSpace__ecere__com__Instance * this)
578 {
579 __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);
580
581 return __ecerePointer___ecereNameSpace__ecere__sys__TempFile->eof;
582 }
583
584 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__TempFile_GetSize(struct __ecereNameSpace__ecere__com__Instance * this)
585 {
586 __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);
587
588 return __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size;
589 }
590
591 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Truncate(struct __ecereNameSpace__ecere__com__Instance * this, unsigned int size)
592 {
593 __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);
594
595 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->buffer = __ecereNameSpace__ecere__com__eSystem_Renew(__ecerePointer___ecereNameSpace__ecere__sys__TempFile->buffer, sizeof(unsigned char) * (size));
596 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->size = (unsigned int)size;
597 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->allocated = (unsigned int)size;
598 if(__ecerePointer___ecereNameSpace__ecere__sys__TempFile->position > size)
599 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->position = (unsigned int)size;
600 return 1;
601 }
602
603 int __ecereProp___ecereNameSpace__ecere__sys__TempFile_Get_openMode(struct __ecereNameSpace__ecere__com__Instance * this)
604 {
605 __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);
606
607 return __ecerePointer___ecereNameSpace__ecere__sys__TempFile->openMode;
608 }
609
610 void __ecereProp___ecereNameSpace__ecere__sys__TempFile_Set_openMode(struct __ecereNameSpace__ecere__com__Instance * this, int value)
611 {
612 __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);
613
614 __ecerePointer___ecereNameSpace__ecere__sys__TempFile->openMode = value;
615 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__sys__TempFile_openMode), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__sys__TempFile_openMode);
616 }
617
618 unsigned char *  __ecereProp___ecereNameSpace__ecere__sys__TempFile_Get_buffer(struct __ecereNameSpace__ecere__com__Instance * this)
619 {
620 __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);
621
622 return __ecerePointer___ecereNameSpace__ecere__sys__TempFile->buffer;
623 }
624
625 void __ecereUnregisterModule_TempFile(struct __ecereNameSpace__ecere__com__Instance * module)
626 {
627
628 __ecerePropM___ecereNameSpace__ecere__sys__TempFile_openMode = (void *)0;
629 __ecerePropM___ecereNameSpace__ecere__sys__TempFile_buffer = (void *)0;
630 }
631
632 void __ecereRegisterModule_TempFile(struct __ecereNameSpace__ecere__com__Instance * module)
633 {
634 struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class;
635
636 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);
637 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)
638 __ecereClass___ecereNameSpace__ecere__sys__TempFile = class;
639 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Seek", 0, __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Seek, 1);
640 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Tell", 0, __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Tell, 1);
641 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Read", 0, __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Read, 1);
642 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Write", 0, __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Write, 1);
643 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Getc", 0, __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Getc, 1);
644 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Putc", 0, __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Putc, 1);
645 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Puts", 0, __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Puts, 1);
646 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Eof", 0, __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Eof, 1);
647 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Truncate", 0, __ecereMethod___ecereNameSpace__ecere__sys__TempFile_Truncate, 1);
648 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetSize", 0, __ecereMethod___ecereNameSpace__ecere__sys__TempFile_GetSize, 1);
649 __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);
650 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)
651 __ecereProp___ecereNameSpace__ecere__sys__TempFile_openMode = __ecerePropM___ecereNameSpace__ecere__sys__TempFile_openMode, __ecerePropM___ecereNameSpace__ecere__sys__TempFile_openMode = (void *)0;
652 __ecerePropM___ecereNameSpace__ecere__sys__TempFile_buffer = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "buffer", "byte *", 0, __ecereProp___ecereNameSpace__ecere__sys__TempFile_Get_buffer, 1);
653 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)
654 __ecereProp___ecereNameSpace__ecere__sys__TempFile_buffer = __ecerePropM___ecereNameSpace__ecere__sys__TempFile_buffer, __ecerePropM___ecereNameSpace__ecere__sys__TempFile_buffer = (void *)0;
655 }
656