ecere/com: Fixes to avoid printing Instance members, print Instance address directly
[sdk] / compiler / bootstrap / ecere / bootstrap / dataTypes.c
1 #if defined(__GNUC__)
2 typedef long long int64;
3 typedef unsigned long long uint64;
4 #ifndef _WIN32
5 #define __declspec(x)
6 #endif
7 #elif defined(__TINYC__)
8 #include <stdarg.h>
9 #define __builtin_va_list va_list
10 #define __builtin_va_start va_start
11 #define __builtin_va_end va_end
12 #ifdef _WIN32
13 #define strcasecmp stricmp
14 #define strncasecmp strnicmp
15 #define __declspec(x) __attribute__((x))
16 #else
17 #define __declspec(x)
18 #endif
19 typedef long long int64;
20 typedef unsigned long long uint64;
21 #else
22 typedef __int64 int64;
23 typedef unsigned __int64 uint64;
24 #endif
25 #ifdef __BIG_ENDIAN__
26 #define __ENDIAN_PAD(x) (8 - (x))
27 #else
28 #define __ENDIAN_PAD(x) 0
29 #endif
30 #include <stdint.h>
31 #include <sys/types.h>
32
33 #if /*defined(_W64) || */(defined(__WORDSIZE) && __WORDSIZE == 8) || defined(__x86_64__)
34 #define _64BIT 1
35 #else
36 #define _64BIT 0
37 #endif
38
39 #define arch_PointerSize                  sizeof(void *)
40 #define structSize_Instance               (_64BIT ? 24 : 12)
41
42 extern void *  __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
43
44 extern void *  __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
45
46 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew(void *  memory, unsigned int size);
47
48 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew0(void *  memory, unsigned int size);
49
50 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
51
52 struct __ecereNameSpace__ecere__sys__BTNode;
53
54 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
55
56 struct __ecereNameSpace__ecere__sys__BinaryTree
57 {
58 struct __ecereNameSpace__ecere__sys__BTNode * root;
59 int count;
60 int (*  CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
61 void (*  FreeKey)(void *  key);
62 } __attribute__ ((gcc_struct));
63
64 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
65
66 struct __ecereNameSpace__ecere__sys__OldList
67 {
68 void *  first;
69 void *  last;
70 int count;
71 unsigned int offset;
72 unsigned int circ;
73 } __attribute__ ((gcc_struct));
74
75 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
76
77 struct __ecereNameSpace__ecere__com__Class
78 {
79 struct __ecereNameSpace__ecere__com__Class * prev;
80 struct __ecereNameSpace__ecere__com__Class * next;
81 char *  name;
82 int offset;
83 int structSize;
84 int (* *  _vTbl)();
85 int vTblSize;
86 int (*  Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
87 void (*  Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
88 int offsetClass;
89 int sizeClass;
90 struct __ecereNameSpace__ecere__com__Class * base;
91 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
92 struct __ecereNameSpace__ecere__sys__BinaryTree members;
93 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
94 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
95 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
96 struct __ecereNameSpace__ecere__sys__OldList derivatives;
97 int memberID;
98 int startMemberID;
99 int type;
100 struct __ecereNameSpace__ecere__com__Instance * module;
101 struct __ecereNameSpace__ecere__com__NameSpace *  nameSpace;
102 char *  dataTypeString;
103 struct __ecereNameSpace__ecere__com__Instance * dataType;
104 int typeSize;
105 int defaultAlignment;
106 void (*  Initialize)();
107 int memberOffset;
108 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
109 char *  designerClass;
110 unsigned int noExpansion;
111 char *  defaultProperty;
112 unsigned int comRedefinition;
113 int count;
114 unsigned int isRemote;
115 unsigned int internalDecl;
116 void *  data;
117 unsigned int computeSize;
118 int structAlignment;
119 int destructionWatchOffset;
120 unsigned int fixed;
121 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
122 int inheritanceAccess;
123 char *  fullName;
124 void *  symbol;
125 struct __ecereNameSpace__ecere__sys__OldList conversions;
126 struct __ecereNameSpace__ecere__sys__OldList templateParams;
127 struct __ecereNameSpace__ecere__com__ClassTemplateArgument *  templateArgs;
128 struct __ecereNameSpace__ecere__com__Class * templateClass;
129 struct __ecereNameSpace__ecere__sys__OldList templatized;
130 int numParams;
131 } __attribute__ ((gcc_struct));
132
133 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char *  name);
134
135 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
136
137 struct __ecereNameSpace__ecere__com__Instance
138 {
139 int (* *  _vTbl)();
140 struct __ecereNameSpace__ecere__com__Class * _class;
141 int _refCount;
142 } __attribute__ ((gcc_struct));
143
144 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
145
146 struct __ecereNameSpace__ecere__com__Property
147 {
148 struct __ecereNameSpace__ecere__com__Property * prev;
149 struct __ecereNameSpace__ecere__com__Property * next;
150 char *  name;
151 unsigned int isProperty;
152 int memberAccess;
153 int id;
154 struct __ecereNameSpace__ecere__com__Class * _class;
155 char *  dataTypeString;
156 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
157 struct __ecereNameSpace__ecere__com__Instance * dataType;
158 void (*  Set)(void * , int);
159 int (*  Get)(void * );
160 unsigned int (*  IsSet)(void * );
161 void *  data;
162 void *  symbol;
163 int vid;
164 unsigned int conversion;
165 unsigned int watcherOffset;
166 char *  category;
167 unsigned int compiled;
168 unsigned int selfWatchable;
169 unsigned int isWatchable;
170 } __attribute__ ((gcc_struct));
171
172 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
173
174 struct __ecereNameSpace__ecere__com__DataMember
175 {
176 struct __ecereNameSpace__ecere__com__DataMember * prev;
177 struct __ecereNameSpace__ecere__com__DataMember * next;
178 char *  name;
179 unsigned int isProperty;
180 int memberAccess;
181 int id;
182 struct __ecereNameSpace__ecere__com__Class * _class;
183 char *  dataTypeString;
184 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
185 struct __ecereNameSpace__ecere__com__Instance * dataType;
186 int type;
187 int offset;
188 int memberID;
189 struct __ecereNameSpace__ecere__sys__OldList members;
190 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
191 int memberOffset;
192 int structAlignment;
193 } __attribute__ ((gcc_struct));
194
195 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
196
197 struct __ecereNameSpace__ecere__com__Method
198 {
199 char *  name;
200 struct __ecereNameSpace__ecere__com__Method * parent;
201 struct __ecereNameSpace__ecere__com__Method * left;
202 struct __ecereNameSpace__ecere__com__Method * right;
203 int depth;
204 int (*  function)();
205 int vid;
206 int type;
207 struct __ecereNameSpace__ecere__com__Class * _class;
208 void *  symbol;
209 char *  dataTypeString;
210 struct __ecereNameSpace__ecere__com__Instance * dataType;
211 int memberAccess;
212 } __attribute__ ((gcc_struct));
213
214 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
215
216 struct __ecereNameSpace__ecere__com__DataValue
217 {
218 union
219 {
220 char c;
221 unsigned char uc;
222 short s;
223 unsigned short us;
224 int i;
225 unsigned int ui;
226 void *  p;
227 float f;
228 double d;
229 long long i64;
230 uint64 ui64;
231 } __attribute__ ((gcc_struct));
232 } __attribute__ ((gcc_struct));
233
234 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
235
236 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
237 {
238 union
239 {
240 struct
241 {
242 char *  dataTypeString;
243 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
244 } __attribute__ ((gcc_struct));
245 struct __ecereNameSpace__ecere__com__DataValue expression;
246 struct
247 {
248 char *  memberString;
249 union
250 {
251 struct __ecereNameSpace__ecere__com__DataMember * member;
252 struct __ecereNameSpace__ecere__com__Property * prop;
253 struct __ecereNameSpace__ecere__com__Method * method;
254 } __attribute__ ((gcc_struct));
255 } __attribute__ ((gcc_struct));
256 } __attribute__ ((gcc_struct));
257 } __attribute__ ((gcc_struct));
258
259 extern int runtimePlatform;
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278 int __ecereVMethodID_class_OnGetString;
279
280 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_int;
281
282 int __ecereVMethodID_class_OnFree;
283
284 int __ecereVMethodID_class_OnCopy;
285
286 int __ecereVMethodID_class_OnCompare;
287
288 int __ecereVMethodID_class_OnSaveEdit;
289
290 int __ecereVMethodID_class_OnEdit;
291
292 int __ecereVMethodID_class_OnGetDataFromString;
293
294 static void __ecereNameSpace__ecere__com__UnusedFunction()
295 {
296 int __internalValue001;
297 int __internalValue000;
298 int a;
299
300 ((char *  (*)(struct __ecereNameSpace__ecere__com__Class *, void *, char *  tempString, void *  fieldData, unsigned int *  needClass))__ecereClass_int->_vTbl[__ecereVMethodID_class_OnGetString])(__ecereClass_int, &a, 0, 0, 0);
301 ((void (*)(struct __ecereNameSpace__ecere__com__Class *, void *))__ecereClass_int->_vTbl[__ecereVMethodID_class_OnFree])(__ecereClass_int, &a);
302 ((void (*)(struct __ecereNameSpace__ecere__com__Class *, void *, void * newData))__ecereClass_int->_vTbl[__ecereVMethodID_class_OnCopy])(__ecereClass_int, &a, __extension__ ({
303 __internalValue000 = 0;
304 &__internalValue000;
305 }));
306 ((int (*)(struct __ecereNameSpace__ecere__com__Class *, void *, void * object))__ecereClass_int->_vTbl[__ecereVMethodID_class_OnCompare])(__ecereClass_int, &a, __extension__ ({
307 __internalValue001 = 0;
308 &__internalValue001;
309 }));
310 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Class *, void *, struct __ecereNameSpace__ecere__com__Instance * window, void *  object))__ecereClass_int->_vTbl[__ecereVMethodID_class_OnSaveEdit])(__ecereClass_int, &a, (((void *)0)), 0);
311 ((struct __ecereNameSpace__ecere__com__Instance * (*)(struct __ecereNameSpace__ecere__com__Class *, void *, struct __ecereNameSpace__ecere__com__Instance * dataBox, struct __ecereNameSpace__ecere__com__Instance * obsolete, int x, int y, int w, int h, void *  userData))__ecereClass_int->_vTbl[__ecereVMethodID_class_OnEdit])(__ecereClass_int, &a, (((void *)0)), (((void *)0)), 0, 0, 0, 20, 0);
312 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Class *, void *, char *  string))__ecereClass_int->_vTbl[__ecereVMethodID_class_OnGetDataFromString])(__ecereClass_int, &a, (((void *)0)));
313 }
314
315 typedef __builtin_va_list va_list;
316
317 void exit(int status);
318
319 void * calloc(size_t nmemb, size_t size);
320
321 void free(void * ptr);
322
323 void * malloc(size_t size);
324
325 void * realloc(void * ptr, size_t size);
326
327 long int strtol(const char * nptr, char ** endptr, int base);
328
329 long long int strtoll(const char * nptr, char ** endptr, int base);
330
331 unsigned long long int strtoull(const char * nptr, char ** endptr, int base);
332
333 typedef void FILE;
334
335 FILE * bsl_stdin(void);
336
337 FILE * bsl_stdout(void);
338
339 FILE * bsl_stderr(void);
340
341 char * fgets(char * s, int size, FILE * stream);
342
343 FILE * fopen(const char * path, const char * mode);
344
345 int fclose(FILE * fp);
346
347 int fflush(FILE * stream);
348
349 int fgetc(FILE * stream);
350
351 int fprintf(FILE * stream, const char * format, ...);
352
353 int fputc(int c, FILE * stream);
354
355 size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream);
356
357 size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream);
358
359 int vsnprintf(char *, size_t, const char *, ...);
360
361 int snprintf(char * str, size_t, const char * format, ...);
362
363 int fseek(FILE * stream, long offset, int whence);
364
365 long ftell(FILE * stream);
366
367 int feof(FILE * stream);
368
369 int ferror(FILE * stream);
370
371 int fileno(FILE * stream);
372
373 FILE * eC_stdout(void);
374
375 FILE * eC_stderr(void);
376
377 extern int __ecereVMethodID_class_OnGetString;
378
379 extern int __ecereVMethodID_class_OnGetDataFromString;
380
381 extern int __ecereVMethodID_class_OnCompare;
382
383 extern int __ecereVMethodID_class_OnSerialize;
384
385 extern int __ecereVMethodID_class_OnUnserialize;
386
387 extern int __ecereVMethodID_class_OnCopy;
388
389 void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory);
390
391 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__IOChannel;
392
393 int __ecereVMethodID_class_OnSerialize;
394
395 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * data)
396 {
397 ((void (*)(struct __ecereNameSpace__ecere__com__Class *, void *, struct __ecereNameSpace__ecere__com__Instance * channel))class->_vTbl[__ecereVMethodID_class_OnSerialize])(class, data, this);
398 }
399
400 int __ecereVMethodID_class_OnUnserialize;
401
402 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * * data)
403 {
404 ((void (*)(struct __ecereNameSpace__ecere__com__Class *, void *, struct __ecereNameSpace__ecere__com__Instance * channel))class->_vTbl[__ecereVMethodID_class_OnUnserialize])(class, data, this);
405 }
406
407 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Put(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * data)
408 {
409 ((void (*)(struct __ecereNameSpace__ecere__com__Class *, void *, struct __ecereNameSpace__ecere__com__Instance * channel))class->_vTbl[__ecereVMethodID_class_OnSerialize])(class, data, this);
410 }
411
412 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Get(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * * data)
413 {
414 ((void (*)(struct __ecereNameSpace__ecere__com__Class *, void *, struct __ecereNameSpace__ecere__com__Instance * channel))class->_vTbl[__ecereVMethodID_class_OnUnserialize])(class, data, this);
415 }
416
417 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__SerialBuffer_buffer, * __ecerePropM___ecereNameSpace__ecere__com__SerialBuffer_buffer;
418
419 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__SerialBuffer_size, * __ecerePropM___ecereNameSpace__ecere__com__SerialBuffer_size;
420
421 struct __ecereNameSpace__ecere__com__SerialBuffer
422 {
423 unsigned char * _buffer;
424 unsigned int count;
425 unsigned int _size;
426 unsigned int pos;
427 } __attribute__ ((gcc_struct));
428
429 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
430
431 void __ecereMethod___ecereNameSpace__ecere__com__SerialBuffer_Free();
432
433 void __ecereDestructor___ecereNameSpace__ecere__com__SerialBuffer(struct __ecereNameSpace__ecere__com__Instance * this)
434 {
435 struct __ecereNameSpace__ecere__com__SerialBuffer * __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer = (struct __ecereNameSpace__ecere__com__SerialBuffer *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__com__SerialBuffer->offset) : 0);
436
437 {
438 __ecereMethod___ecereNameSpace__ecere__com__SerialBuffer_Free(this);
439 }
440 }
441
442 extern void *  memcpy(void * , const void * , size_t size);
443
444 unsigned int __ecereMethod___ecereNameSpace__ecere__com__SerialBuffer_WriteData(struct __ecereNameSpace__ecere__com__Instance * this, unsigned char * bytes, unsigned int numBytes)
445 {
446 struct __ecereNameSpace__ecere__com__SerialBuffer * __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer = (struct __ecereNameSpace__ecere__com__SerialBuffer *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__com__SerialBuffer->offset) : 0);
447
448 if(this != (((void *)0)))
449 {
450 if(__ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->count + numBytes > __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->_size)
451 {
452 __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->_size = __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->count + numBytes;
453 __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->_size += __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->_size / 2;
454 __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->_buffer = __ecereNameSpace__ecere__com__eSystem_Renew(__ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->_buffer, sizeof(unsigned char) * (__ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->_size));
455 }
456 memcpy(__ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->_buffer + __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->count, bytes, numBytes);
457 __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->count += numBytes;
458 return numBytes;
459 }
460 return 0;
461 }
462
463 unsigned int __ecereMethod___ecereNameSpace__ecere__com__SerialBuffer_ReadData(struct __ecereNameSpace__ecere__com__Instance * this, unsigned char * bytes, unsigned int numBytes)
464 {
465 struct __ecereNameSpace__ecere__com__SerialBuffer * __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer = (struct __ecereNameSpace__ecere__com__SerialBuffer *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__com__SerialBuffer->offset) : 0);
466
467 if(this != (((void *)0)))
468 {
469 unsigned int __simpleStruct0;
470 int read = (__simpleStruct0 = __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->count - __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->pos, (numBytes < __simpleStruct0) ? numBytes : __simpleStruct0);
471
472 memcpy(bytes, __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->_buffer + __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->pos, read);
473 __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->pos += read;
474 return read;
475 }
476 return 0;
477 }
478
479 void __ecereMethod___ecereNameSpace__ecere__com__SerialBuffer_Free(struct __ecereNameSpace__ecere__com__Instance * this)
480 {
481 struct __ecereNameSpace__ecere__com__SerialBuffer * __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer = (struct __ecereNameSpace__ecere__com__SerialBuffer *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__com__SerialBuffer->offset) : 0);
482
483 if(this)
484 {
485 (__ecereNameSpace__ecere__com__eSystem_Delete(__ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->_buffer), __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->_buffer = 0);
486 __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->count = 0;
487 __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->_size = 0;
488 __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->pos = 0;
489 }
490 }
491
492 unsigned char *  __ecereProp___ecereNameSpace__ecere__com__SerialBuffer_Get_buffer(struct __ecereNameSpace__ecere__com__Instance * this)
493 {
494 struct __ecereNameSpace__ecere__com__SerialBuffer * __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer = (struct __ecereNameSpace__ecere__com__SerialBuffer *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__com__SerialBuffer->offset) : 0);
495
496 return __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->_buffer + __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->pos;
497 }
498
499 void __ecereProp___ecereNameSpace__ecere__com__SerialBuffer_Set_buffer(struct __ecereNameSpace__ecere__com__Instance * this, unsigned char *  value)
500 {
501 struct __ecereNameSpace__ecere__com__SerialBuffer * __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer = (struct __ecereNameSpace__ecere__com__SerialBuffer *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__com__SerialBuffer->offset) : 0);
502
503 __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->_buffer = value;
504 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__SerialBuffer_buffer), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__SerialBuffer_buffer);
505 }
506
507 unsigned int __ecereProp___ecereNameSpace__ecere__com__SerialBuffer_Get_size(struct __ecereNameSpace__ecere__com__Instance * this)
508 {
509 struct __ecereNameSpace__ecere__com__SerialBuffer * __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer = (struct __ecereNameSpace__ecere__com__SerialBuffer *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__com__SerialBuffer->offset) : 0);
510
511 return __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->count - __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->pos;
512 }
513
514 void __ecereProp___ecereNameSpace__ecere__com__SerialBuffer_Set_size(struct __ecereNameSpace__ecere__com__Instance * this, unsigned int value)
515 {
516 struct __ecereNameSpace__ecere__com__SerialBuffer * __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer = (struct __ecereNameSpace__ecere__com__SerialBuffer *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__com__SerialBuffer->offset) : 0);
517
518 __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->count = value;
519 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__SerialBuffer_size), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__SerialBuffer_size);
520 }
521
522 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__EnumClassData;
523
524 struct __ecereNameSpace__ecere__com__EnumClassData
525 {
526 struct __ecereNameSpace__ecere__sys__OldList values;
527 int largest;
528 } __attribute__ ((gcc_struct));
529
530 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__NamedLink;
531
532 struct __ecereNameSpace__ecere__sys__NamedLink
533 {
534 struct __ecereNameSpace__ecere__sys__NamedLink * prev;
535 struct __ecereNameSpace__ecere__sys__NamedLink * next;
536 char *  name;
537 void *  data;
538 } __attribute__ ((gcc_struct));
539
540 extern char *  strcpy(char * , const char * );
541
542 extern int toupper(int);
543
544 char * __ecereNameSpace__ecere__com__Enum_OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, int * data, char * tempString, void * fieldData, unsigned int * needClass)
545 {
546 struct __ecereNameSpace__ecere__com__EnumClassData * enumeration = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
547 struct __ecereNameSpace__ecere__sys__NamedLink * item;
548
549 for(item = enumeration->values.first; item; item = item->next)
550 if((int)item->data == *data)
551 break;
552 if(item)
553 {
554 strcpy(tempString, item->name);
555 if(!needClass || !*needClass)
556 tempString[0] = (char)toupper(tempString[0]);
557 return tempString;
558 }
559 else
560 return (((void *)0));
561 }
562
563 extern int strcasecmp(const char * , const char * );
564
565 static unsigned int __ecereNameSpace__ecere__com__Integer_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * _class, int *  data, char *  string);
566
567 static unsigned int __ecereNameSpace__ecere__com__Enum_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * _class, int * data, char * string)
568 {
569 struct __ecereNameSpace__ecere__com__EnumClassData * enumeration = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
570 struct __ecereNameSpace__ecere__sys__NamedLink * item;
571
572 for(item = enumeration->values.first; item; item = item->next)
573 {
574 if(item->name && !(strcasecmp)(item->name, string))
575 break;
576 }
577 if(item)
578 {
579 *data = (int)item->data;
580 return 0x1;
581 }
582 else
583 return __ecereNameSpace__ecere__com__Integer_OnGetDataFromString(_class, data, string);
584 return 0x0;
585 }
586
587 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
588
589 static void __ecereNameSpace__ecere__com__OnFree(struct __ecereNameSpace__ecere__com__Class * _class, void * data)
590 {
591 if(_class->templateClass)
592 _class = _class->templateClass;
593 if(_class->type == 0)
594 {
595 __ecereNameSpace__ecere__com__eInstance_DecRef(data);
596 }
597 else if(_class->type == 5 && data)
598 {
599 while(_class && _class->type == 5)
600 {
601 if(_class->Destructor)
602 _class->Destructor(data);
603 _class = _class->base;
604 }
605 (__ecereNameSpace__ecere__com__eSystem_Delete(data), data = 0);
606 }
607 }
608
609 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_FindClass(struct __ecereNameSpace__ecere__com__Instance * module, char *  name);
610
611 static int __ecereNameSpace__ecere__com__DataMember_OnCompare(struct __ecereNameSpace__ecere__com__DataMember * parentMember, void * data1, void * data2)
612 {
613 struct __ecereNameSpace__ecere__com__DataMember * member;
614 struct __ecereNameSpace__ecere__com__Instance * module = parentMember->_class->module;
615
616 for(member = parentMember->members.first; member; member = member->next)
617 {
618 int memberResult = 0;
619
620 if(member->type == 0)
621 {
622 struct __ecereNameSpace__ecere__com__Class * memberType = member->dataTypeClass;
623
624 if(!memberType)
625 memberType = member->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, member->dataTypeString);
626 if(!memberType)
627 memberType = member->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "int");
628 if(memberType->type == 1 || memberType->type == 0 || memberType->type == 5)
629 {
630 memberResult = ((int (*)(void *, void *, void *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnCompare])(memberType, (unsigned char *)data1 + member->offset, (unsigned char *)data2 + member->offset);
631 if(memberResult)
632 return memberResult;
633 }
634 else
635 {
636 struct __ecereNameSpace__ecere__com__DataValue value1, value2;
637
638 value1.i = *(int *)((unsigned char *)data1 + member->offset);
639 value2.i = *(int *)((unsigned char *)data2 + member->offset);
640 memberResult = ((int (*)(void *, void *, void *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnCompare])(memberType, &value1, &value2);
641 if(memberResult)
642 return memberResult;
643 }
644 }
645 else
646 {
647 memberResult = __ecereNameSpace__ecere__com__DataMember_OnCompare(member, (unsigned char *)data1 + member->offset, (unsigned char *)data2 + member->offset);
648 if(memberResult)
649 return memberResult;
650 }
651 }
652 return 0;
653 }
654
655 extern int strcmp(const char * , const char * );
656
657 static int __ecereNameSpace__ecere__com__OnCompare(struct __ecereNameSpace__ecere__com__Class * _class, void * data1, void * data2)
658 {
659 struct __ecereNameSpace__ecere__com__Instance * module = _class->module;
660
661 if(_class->type == 0 || _class->type == 5 || _class->type == 1)
662 {
663 if(data1 && data2)
664 {
665 for(; _class && _class->type != 1000; _class = _class->base)
666 {
667 struct __ecereNameSpace__ecere__com__DataMember * member;
668
669 if(_class->noExpansion)
670 {
671 if(data1 > data2)
672 return 1;
673 else if(data1 < data2)
674 return -1;
675 else
676 return 0;
677 }
678 for(member = _class->membersAndProperties.first; member; member = member->next)
679 {
680 int memberResult = 0;
681
682 if(member->isProperty || member->type == 0)
683 {
684 struct __ecereNameSpace__ecere__com__Class * memberType = member->dataTypeClass;
685
686 if(!memberType)
687 memberType = member->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, member->dataTypeString);
688 if(memberType)
689 {
690 if(member->isProperty)
691 {
692 struct __ecereNameSpace__ecere__com__Property * prop = (struct __ecereNameSpace__ecere__com__Property *)member;
693
694 if(!prop->conversion && prop->Get && prop->Set)
695 {
696 if(memberType->type == 1 || memberType->type == 0 || memberType->type == 5)
697 {
698 if(!strcmp(memberType->dataTypeString, "char *"))
699 {
700 char * a = ((char * (*)(void *))(void *)prop->Get)(data1);
701 char * b = ((char * (*)(void *))(void *)prop->Get)(data2);
702
703 memberResult = ((int (*)(void *, void *, void *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnCompare])(memberType, a, b);
704 }
705 }
706 else
707 {
708 struct __ecereNameSpace__ecere__com__DataValue value1, value2;
709
710 if(!strcmp(memberType->dataTypeString, "float"))
711 {
712 value1.f = ((float (*)(void *))(void *)prop->Get)(data1);
713 value2.f = ((float (*)(void *))(void *)prop->Get)(data2);
714 }
715 else
716 {
717 value1.i = ((int (*)(void *))(void *)prop->Get)(data1);
718 value2.i = ((int (*)(void *))(void *)prop->Get)(data2);
719 }
720 memberResult = ((int (*)(void *, void *, void *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnCompare])(memberType, &value1, &value2);
721 }
722 }
723 }
724 else
725 {
726 if(memberType->type == 1 || memberType->type == 0 || memberType->type == 5)
727 {
728 if(memberType->type == 0 || memberType->type == 5)
729 {
730 memberResult = ((int (*)(void *, void *, void *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnCompare])(memberType, *(void **)((unsigned char *)data1 + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset)), *(void **)((unsigned char *)data2 + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset)));
731 }
732 else
733 {
734 memberResult = ((int (*)(void *, void *, void *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnCompare])(memberType, (unsigned char *)data1 + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset), (unsigned char *)data2 + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset));
735 }
736 }
737 else
738 {
739 struct __ecereNameSpace__ecere__com__DataValue value1, value2;
740
741 if(memberType->typeSize == 8)
742 {
743 value1.ui64 = *(uint64 *)((unsigned char *)data1 + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset));
744 value2.ui64 = *(uint64 *)((unsigned char *)data2 + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset));
745 }
746 else
747 {
748 value1.i = *(int *)((unsigned char *)data1 + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset));
749 value2.i = *(int *)((unsigned char *)data2 + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset));
750 }
751 memberResult = ((int (*)(void *, void *, void *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnCompare])(memberType, &value1, &value2);
752 }
753 }
754 }
755 else
756 {
757 }
758 }
759 else
760 {
761 memberResult = __ecereNameSpace__ecere__com__DataMember_OnCompare(member, (unsigned char *)data1 + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset), (unsigned char *)data2 + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset));
762 }
763 if(memberResult)
764 return memberResult;
765 }
766 }
767 }
768 else if(!data1 && data2)
769 return 1;
770 else if(data1 && !data2)
771 return -1;
772 }
773 else if(_class->type == 3)
774 {
775 struct __ecereNameSpace__ecere__com__Class * dataType = __ecereNameSpace__ecere__com__eSystem_FindClass(module, _class->dataTypeString);
776
777 return ((int (*)(void *, void *, void *))(void *)dataType->_vTbl[__ecereVMethodID_class_OnCompare])(dataType, data1, data2);
778 }
779 else
780 {
781 int result = 0;
782
783 if(data1 && data2)
784 {
785 if(_class->typeSize == 8)
786 {
787 if(*(uint64 *)data1 > *(uint64 *)data2)
788 result = 1;
789 else if(*(uint64 *)data1 < *(uint64 *)data2)
790 result = -1;
791 }
792 else
793 {
794 if(*(unsigned int *)data1 > *(unsigned int *)data2)
795 result = 1;
796 else if(*(unsigned int *)data1 < *(unsigned int *)data2)
797 result = -1;
798 }
799 }
800 else if(!data1 && data2)
801 return 1;
802 else if(data1 && !data2)
803 return -1;
804 return result;
805 }
806 return 0;
807 }
808
809 static char *  __ecereNameSpace__ecere__com__UInt64Hex_OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, uint64 *  data, char *  string, void *  fieldData, unsigned int *  needClass);
810
811 static char *  __ecereNameSpace__ecere__com__UIntegerHex_OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, unsigned int *  data, char *  string, void *  fieldData, unsigned int *  needClass);
812
813 extern char *  strchr(const char * , int);
814
815 extern char *  strcat(char * , const char * );
816
817 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BitMember;
818
819 struct __ecereNameSpace__ecere__com__BitMember
820 {
821 struct __ecereNameSpace__ecere__com__BitMember * prev;
822 struct __ecereNameSpace__ecere__com__BitMember * next;
823 char *  name;
824 unsigned int isProperty;
825 int memberAccess;
826 int id;
827 struct __ecereNameSpace__ecere__com__Class * _class;
828 char *  dataTypeString;
829 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
830 struct __ecereNameSpace__ecere__com__Instance * dataType;
831 int type;
832 int size;
833 int pos;
834 uint64 mask;
835 } __attribute__ ((gcc_struct));
836
837 extern size_t strlen(const char * );
838
839 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_double;
840
841 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_float;
842
843 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_int64;
844
845 static char * __ecereNameSpace__ecere__com__OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, void * data, char * tempString, void * fieldData, unsigned int * needClass)
846 {
847 struct __ecereNameSpace__ecere__com__Instance * module = _class->templateClass ? _class->templateClass->module : _class->module;
848
849 if(_class->type == 0 && _class->base && !_class->base->base)
850 {
851 if(sizeof(size_t) == 8)
852 return __ecereNameSpace__ecere__com__UInt64Hex_OnGetString(_class, (void *)&data, tempString, fieldData, needClass);
853 else
854 return __ecereNameSpace__ecere__com__UIntegerHex_OnGetString(_class, (void *)&data, tempString, fieldData, needClass);
855 }
856 else if(_class->type == 4)
857 {
858 return __ecereNameSpace__ecere__com__Enum_OnGetString(_class, data, tempString, fieldData, needClass);
859 }
860 else if(_class->type == 3)
861 {
862 struct __ecereNameSpace__ecere__com__Class * dataType;
863 struct __ecereNameSpace__ecere__com__Property * prop;
864
865 for(prop = _class->conversions.first; prop; prop = prop->next)
866 {
867 unsigned int refProp = 0x0;
868 struct __ecereNameSpace__ecere__com__Class * c;
869
870 if(!strcmp(prop->name, _class->base->fullName))
871 refProp = 0x1;
872 else if((c = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, prop->name)))
873 {
874 struct __ecereNameSpace__ecere__com__Property * p;
875
876 for(p = c->conversions.first; p; p = p->next)
877 {
878 if(!strcmp(p->name, _class->base->fullName) && !p->Set && !p->Get)
879 {
880 refProp = 0x1;
881 break;
882 }
883 }
884 }
885 if(refProp)
886 {
887 if(prop->Set && prop->Get)
888 {
889 char * dts = _class->base->dataTypeString;
890
891 if(!strcmp(dts, "double"))
892 {
893 double d = ((double (*)(double))(void *)prop->Set)(*(double *)data);
894
895 return ((char * (*)(void *, void *, char *, void *, unsigned int *))(void *)__ecereClass_double->_vTbl[__ecereVMethodID_class_OnGetString])(__ecereClass_double, &d, tempString, fieldData, needClass);
896 }
897 else if(!strcmp(dts, "float"))
898 {
899 float d = ((float (*)(float))(void *)prop->Set)(*(float *)data);
900
901 return ((char * (*)(void *, void *, char *, void *, unsigned int *))(void *)__ecereClass_float->_vTbl[__ecereVMethodID_class_OnGetString])(__ecereClass_float, &d, tempString, fieldData, needClass);
902 }
903 else if(!strcmp(dts, "int"))
904 {
905 int d = ((int (*)(int))(void *)prop->Set)(*(int *)data);
906
907 return ((char * (*)(void *, void *, char *, void *, unsigned int *))(void *)__ecereClass_int->_vTbl[__ecereVMethodID_class_OnGetString])(__ecereClass_int, &d, tempString, fieldData, needClass);
908 }
909 else if(!strcmp(dts, "int64"))
910 {
911 long long d = ((long long (*)(long long))(void *)prop->Set)(*(long long *)data);
912
913 return ((char * (*)(void *, void *, char *, void *, unsigned int *))(void *)__ecereClass_int64->_vTbl[__ecereVMethodID_class_OnGetString])(__ecereClass_int64, &d, tempString, fieldData, needClass);
914 }
915 }
916 else
917 break;
918 }
919 }
920 dataType = __ecereNameSpace__ecere__com__eSystem_FindClass(module, _class->dataTypeString);
921 return ((char * (*)(void *, void *, char *, void *, unsigned int *))(void *)dataType->_vTbl[__ecereVMethodID_class_OnGetString])(dataType, data, tempString, fieldData, needClass);
922 }
923 else
924 {
925 unsigned int atMember = 0x1;
926 unsigned int prev = 0x0;
927 struct __ecereNameSpace__ecere__com__Class * mainClass = _class;
928
929 _class = (((void *)0));
930 tempString[0] = '\0';
931 if(!data && (mainClass->type == 0 || mainClass->type == 5))
932 return tempString;
933 while(_class != mainClass)
934 {
935 struct __ecereNameSpace__ecere__com__DataMember * member;
936 struct __ecereNameSpace__ecere__com__Class * lastClass = _class;
937
938 for(_class = mainClass; _class->base != lastClass && _class->base->type != 1000; _class = _class->base)
939 ;
940 for(member = _class->membersAndProperties.first; member; member = member->next)
941 {
942 char memberString[1024];
943 struct __ecereNameSpace__ecere__com__Class * memberType = member->dataTypeClass;
944 char * name = member->name;
945
946 if(member->id < 0)
947 continue;
948 memberString[0] = (char)0;
949 if(!memberType)
950 memberType = member->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, member->dataTypeString);
951 if(!memberType)
952 memberType = member->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "int");
953 if(member->isProperty)
954 {
955 struct __ecereNameSpace__ecere__com__Property * prop = (struct __ecereNameSpace__ecere__com__Property *)member;
956
957 if(!prop->conversion && prop->Get && prop->Set && (!prop->IsSet || prop->IsSet(data)))
958 {
959 if(memberType->type != 1 && (memberType->type != 0 || !strcmp(memberType->dataTypeString, "char *")) && memberType->type != 2 && data)
960 {
961 struct __ecereNameSpace__ecere__com__DataValue value = 
962 {
963 (char)0
964 };
965
966 if(!strcmp(prop->dataTypeString, "float"))
967 {
968 value.f = ((float (*)(void *))(void *)prop->Get)(data);
969 if(value.f)
970 {
971 unsigned int needClass = 0x1;
972 char * result = ((char * (*)(void *, void *, char *, void *, unsigned int *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnGetString])(memberType, &value, memberString, (((void *)0)), &needClass);
973
974 if(result && result != memberString)
975 strcpy(memberString, result);
976 if(strchr(memberString, '.'))
977 strcat(memberString, "f");
978 }
979 }
980 else if(memberType->type == 0 || memberType->type == 5)
981 {
982 value.p = ((void * (*)(void *))(void *)prop->Get)(data);
983 if(value.p || prop->IsSet)
984 {
985 unsigned int needClass = 0x1;
986 char * result = ((char * (*)(void *, void *, char *, void *, unsigned int *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnGetString])(memberType, (memberType->type == 0) ? value.p : &value, memberString, (((void *)0)), &needClass);
987
988 if(result && result != memberString)
989 strcpy(memberString, result);
990 }
991 }
992 else
993 {
994 value.i = ((int (*)(void *))(void *)prop->Get)(data);
995 if(value.i || prop->IsSet)
996 {
997 unsigned int needClass = 0x1;
998 char * result = ((char * (*)(void *, void *, char *, void *, unsigned int *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnGetString])(memberType, &value, memberString, (((void *)0)), &needClass);
999
1000 if(result && result != memberString)
1001 strcpy(memberString, result);
1002 }
1003 }
1004 }
1005 }
1006 }
1007 else
1008 {
1009 if(member->type == 0)
1010 {
1011 if(memberType->type == 1 || memberType->type == 0)
1012 {
1013 char internalMemberString[1024];
1014 unsigned char * memberData = ((unsigned char *)data + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset));
1015 int c;
1016
1017 for(c = 0; c < memberType->structSize; c++)
1018 if(memberData[c])
1019 break;
1020 if(c < memberType->structSize)
1021 {
1022 unsigned int needClass = 0x1;
1023 char * result;
1024
1025 if(memberType->type == 0)
1026 result = ((char * (*)(void *, void *, char *, void *, unsigned int *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnGetString])(memberType, *(struct __ecereNameSpace__ecere__com__Instance **)memberData, internalMemberString, (((void *)0)), &needClass);
1027 else
1028 result = ((char * (*)(void *, void *, char *, void *, unsigned int *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnGetString])(memberType, memberData, internalMemberString, (((void *)0)), &needClass);
1029 if(needClass)
1030 {
1031 strcat(memberString, "{ ");
1032 if(result)
1033 strcat(memberString, result);
1034 strcat(memberString, " }");
1035 }
1036 else if(result)
1037 strcpy(memberString, result);
1038 }
1039 }
1040 else
1041 {
1042 struct __ecereNameSpace__ecere__com__DataValue value = 
1043 {
1044 (char)0
1045 };
1046
1047 if(_class->type == 2)
1048 {
1049 struct __ecereNameSpace__ecere__com__BitMember * bitMember = (struct __ecereNameSpace__ecere__com__BitMember *)member;
1050
1051 value.ui64 = ((*(unsigned int *)data & bitMember->mask) >> bitMember->pos);
1052 if(value.ui64)
1053 {
1054 unsigned int needClass = 0x1;
1055 char internalMemberString[1024];
1056 char * result = ((char * (*)(void *, void *, char *, void *, unsigned int *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnGetString])(memberType, &value, internalMemberString, (((void *)0)), &needClass);
1057
1058 if(needClass && memberType->type != 1000 && memberType->type != 4 && memberType->type != 3)
1059 {
1060 strcat(memberString, " { ");
1061 if(result)
1062 strcat(memberString, result);
1063 strcat(memberString, " }");
1064 }
1065 else if(result)
1066 strcpy(memberString, result);
1067 }
1068 }
1069 else if(!memberType->noExpansion)
1070 {
1071 if(memberType->typeSize <= 4)
1072 {
1073 value.i = *(int *)((unsigned char *)data + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset));
1074 if(value.i)
1075 {
1076 unsigned int needClass = 0x1;
1077 char * result = ((char * (*)(void *, void *, char *, void *, unsigned int *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnGetString])(memberType, &value, memberString, (((void *)0)), &needClass);
1078
1079 if(result && memberString != result)
1080 strcpy(memberString, result);
1081 }
1082 }
1083 else
1084 {
1085 unsigned int needClass = 0x1;
1086 char * result = ((char * (*)(void *, void *, char *, void *, unsigned int *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnGetString])(memberType, ((unsigned char *)data + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset)), memberString, (((void *)0)), &needClass);
1087
1088 if(result && memberString != result)
1089 strcpy(memberString, result);
1090 }
1091 }
1092 }
1093 }
1094 }
1095 if(memberString[0])
1096 {
1097 if(prev)
1098 strcat(tempString, ", ");
1099 if(!atMember || !strcmp(memberType->name, "bool"))
1100 {
1101 strcat(tempString, name);
1102 strcat(tempString, " = ");
1103 }
1104 if(!strcmp(memberType->name, "char *"))
1105 {
1106 int len = strlen(tempString);
1107 int c;
1108
1109 strcat(tempString, "\"");
1110 len++;
1111 for(c = 0; memberString[c]; c++)
1112 {
1113 if(memberString[c] == '\"')
1114 {
1115 strcat(tempString, "\\\"");
1116 len += 2;
1117 }
1118 else if(memberString[c] == '\\')
1119 {
1120 strcat(tempString, "\\\\");
1121 len += 2;
1122 }
1123 else
1124 {
1125 tempString[len++] = memberString[c];
1126 tempString[len] = (char)0;
1127 }
1128 }
1129 strcat(tempString, "\"");
1130 }
1131 else
1132 strcat(tempString, memberString);
1133 atMember = 0x1;
1134 prev = 0x1;
1135 }
1136 else if(member && (!member->isProperty || !((struct __ecereNameSpace__ecere__com__Property *)member)->conversion))
1137 atMember = 0x0;
1138 }
1139 }
1140 }
1141 return tempString;
1142 }
1143
1144 extern void *  __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
1145
1146 extern void *  memset(void *  area, int value, size_t count);
1147
1148 extern char *  __ecereNameSpace__ecere__sys__TrimRSpaces(char *  string, char *  output);
1149
1150 extern struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eClass_FindDataMemberAndOffset(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, unsigned int *  offset, struct __ecereNameSpace__ecere__com__Instance * module, struct __ecereNameSpace__ecere__com__DataMember **  subMemberStack, int *  subMemberStackPos);
1151
1152 extern struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_FindProperty(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, struct __ecereNameSpace__ecere__com__Instance * module);
1153
1154 extern void __ecereNameSpace__ecere__com__eClass_FindNextMember(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__Class **  curClass, struct __ecereNameSpace__ecere__com__DataMember **  curMember, struct __ecereNameSpace__ecere__com__DataMember **  subMemberStack, int *  subMemberStackPos);
1155
1156 static unsigned int __ecereNameSpace__ecere__com__OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * _class, void ** data, char * string)
1157 {
1158 unsigned int result;
1159 struct __ecereNameSpace__ecere__com__Instance * module = _class->module;
1160
1161 if(_class->type == 4)
1162 result = __ecereNameSpace__ecere__com__Enum_OnGetDataFromString(_class, (int *)data, string);
1163 else if(_class->type == 3)
1164 {
1165 struct __ecereNameSpace__ecere__com__Class * dataType;
1166 struct __ecereNameSpace__ecere__com__Property * prop;
1167
1168 for(prop = _class->conversions.first; prop; prop = prop->next)
1169 {
1170 unsigned int refProp = 0x0;
1171 struct __ecereNameSpace__ecere__com__Class * c;
1172
1173 if(!strcmp(prop->name, _class->base->fullName))
1174 refProp = 0x1;
1175 else if((c = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, prop->name)))
1176 {
1177 struct __ecereNameSpace__ecere__com__Property * p;
1178
1179 for(p = c->conversions.first; p; p = p->next)
1180 {
1181 if(!strcmp(p->name, _class->base->fullName) && !p->Set && !p->Get)
1182 {
1183 refProp = 0x1;
1184 break;
1185 }
1186 }
1187 }
1188 if(refProp)
1189 {
1190 if(prop->Set && prop->Get)
1191 {
1192 char * dts = _class->base->dataTypeString;
1193
1194 if(!strcmp(dts, "double"))
1195 {
1196 double d;
1197 unsigned int result = ((unsigned int (*)(void *, void *, const char *))(void *)__ecereClass_double->_vTbl[__ecereVMethodID_class_OnGetDataFromString])(__ecereClass_double, &d, string);
1198
1199 *(double *)data = ((double (*)(double))(void *)prop->Get)(d);
1200 return result;
1201 }
1202 else if(!strcmp(dts, "float"))
1203 {
1204 float d;
1205 unsigned int result = ((unsigned int (*)(void *, void *, const char *))(void *)__ecereClass_float->_vTbl[__ecereVMethodID_class_OnGetDataFromString])(__ecereClass_float, &d, string);
1206
1207 *(float *)data = ((float (*)(float))(void *)prop->Get)(d);
1208 return result;
1209 }
1210 else if(!strcmp(dts, "int"))
1211 {
1212 int d;
1213 unsigned int result = ((unsigned int (*)(void *, void *, const char *))(void *)__ecereClass_int->_vTbl[__ecereVMethodID_class_OnGetDataFromString])(__ecereClass_int, &d, string);
1214
1215 *(int *)data = ((int (*)(int))(void *)prop->Get)(d);
1216 return result;
1217 }
1218 else if(!strcmp(dts, "int64"))
1219 {
1220 long long d;
1221 unsigned int result = ((unsigned int (*)(void *, void *, const char *))(void *)__ecereClass_int64->_vTbl[__ecereVMethodID_class_OnGetDataFromString])(__ecereClass_int64, &d, string);
1222
1223 *(long long *)data = ((long long (*)(long long))(void *)prop->Get)(d);
1224 return result;
1225 }
1226 }
1227 else
1228 break;
1229 }
1230 }
1231 dataType = __ecereNameSpace__ecere__com__eSystem_FindClass(module, _class->dataTypeString);
1232 return ((unsigned int (*)(void *, void *, const char *))(void *)dataType->_vTbl[__ecereVMethodID_class_OnGetDataFromString])(dataType, data, string);
1233 }
1234 else if(!string[0] && _class->type == 0)
1235 {
1236 *data = (((void *)0));
1237 return 0x1;
1238 }
1239 else
1240 {
1241 int c;
1242 char memberName[1024];
1243 char memberString[10240];
1244 int count = 0;
1245 unsigned int quoted = 0x0;
1246 int brackets = 0;
1247 char ch;
1248 unsigned int escape = 0x0;
1249 unsigned int gotChar;
1250 unsigned int memberOffset;
1251 struct __ecereNameSpace__ecere__com__Class * curClass = (((void *)0));
1252 struct __ecereNameSpace__ecere__com__DataMember * curMember = (((void *)0));
1253 struct __ecereNameSpace__ecere__com__DataMember * subMemberStack[256];
1254 int subMemberStackPos = 0;
1255
1256 result = 0x1;
1257 if(_class->type == 5 || _class->type == 0)
1258 {
1259 data = *data = __ecereNameSpace__ecere__com__eInstance_New(_class);
1260 if(_class->type == 0)
1261 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)((struct __ecereNameSpace__ecere__com__Instance *)data))->_refCount++;
1262 }
1263 else if(_class->type == 1)
1264 memset(data, 0, _class->structSize);
1265 memberName[0] = '\0';
1266 for(c = 0; string[c] && count < sizeof memberString; )
1267 {
1268 unsigned int found = 0x0;
1269 struct __ecereNameSpace__ecere__com__DataMember * thisMember = (((void *)0));
1270
1271 brackets = 0;
1272 gotChar = 0x0;
1273 for(; (ch = string[c]) && count < sizeof memberString; c++)
1274 {
1275 if(ch == '\"' && !escape)
1276 {
1277 quoted ^= 0x1;
1278 }
1279 else if(quoted)
1280 {
1281 if(!escape && ch == '\\')
1282 {
1283 escape = 0x1;
1284 }
1285 else
1286 {
1287 memberString[count++] = ch;
1288 escape = 0x0;
1289 }
1290 }
1291 else if(ch == ' ')
1292 {
1293 if(gotChar)
1294 memberString[count++] = ch;
1295 }
1296 else if(ch == ',')
1297 {
1298 if(brackets)
1299 {
1300 memberString[count++] = ch;
1301 }
1302 else
1303 {
1304 c++;
1305 break;
1306 }
1307 }
1308 else if(ch == '{')
1309 {
1310 if(gotChar && !brackets)
1311 {
1312 count = 0;
1313 gotChar = 0x0;
1314 }
1315 if(brackets)
1316 {
1317 memberString[count++] = ch;
1318 gotChar = 0x1;
1319 }
1320 brackets++;
1321 }
1322 else if(ch == '}')
1323 {
1324 brackets--;
1325 if(brackets)
1326 {
1327 gotChar = 0x1;
1328 memberString[count++] = ch;
1329 }
1330 }
1331 else if(ch == '=')
1332 {
1333 if(brackets)
1334 {
1335 memberString[count++] = ch;
1336 }
1337 else
1338 {
1339 memberString[count] = '\0';
1340 __ecereNameSpace__ecere__sys__TrimRSpaces(memberString, memberName);
1341 count = 0;
1342 gotChar = 0x0;
1343 }
1344 }
1345 else
1346 {
1347 memberString[count++] = ch;
1348 gotChar = 0x1;
1349 }
1350 }
1351 memberString[count] = '\0';
1352 __ecereNameSpace__ecere__sys__TrimRSpaces(memberString, memberString);
1353 if(memberName[0])
1354 {
1355 struct __ecereNameSpace__ecere__com__DataMember * _subMemberStack[256];
1356 int _subMemberStackPos = 0;
1357
1358 thisMember = __ecereNameSpace__ecere__com__eClass_FindDataMemberAndOffset(_class, memberName, &memberOffset, _class->module, _subMemberStack, &_subMemberStackPos);
1359 if(!thisMember)
1360 thisMember = (struct __ecereNameSpace__ecere__com__DataMember *)__ecereNameSpace__ecere__com__eClass_FindProperty(_class, memberName, _class->module);
1361 if(thisMember)
1362 {
1363 if(thisMember->memberAccess == 1)
1364 {
1365 curMember = thisMember;
1366 curClass = thisMember->_class;
1367 memcpy(subMemberStack, _subMemberStack, sizeof(int) * _subMemberStackPos);
1368 subMemberStackPos = _subMemberStackPos;
1369 }
1370 found = 0x1;
1371 }
1372 }
1373 else
1374 {
1375 __ecereNameSpace__ecere__com__eClass_FindNextMember(_class, &curClass, &curMember, subMemberStack, &subMemberStackPos);
1376 thisMember = curMember;
1377 if(thisMember)
1378 {
1379 found = 0x1;
1380 __ecereNameSpace__ecere__com__eClass_FindDataMemberAndOffset(_class, thisMember->name, &memberOffset, _class->module, (((void *)0)), (((void *)0)));
1381 }
1382 }
1383 if(found)
1384 {
1385 struct __ecereNameSpace__ecere__com__Class * memberType = thisMember->dataTypeClass;
1386
1387 if(!memberType)
1388 memberType = thisMember->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, thisMember->dataTypeString);
1389 if(!memberType)
1390 memberType = thisMember->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "int");
1391 if(memberType->type == 1)
1392 {
1393 if(thisMember)
1394 {
1395 if(!((unsigned int (*)(void *, void *, const char *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnGetDataFromString])(memberType, (unsigned char *)data + (((thisMember->_class->type == 0) ? thisMember->_class->offset : 0) + memberOffset), memberString))
1396 result = 0x0;
1397 }
1398 }
1399 else
1400 {
1401 struct __ecereNameSpace__ecere__com__DataValue value = 
1402 {
1403 (char)0
1404 };
1405
1406 if(memberType->_vTbl[__ecereVMethodID_class_OnGetDataFromString] == _class->_vTbl[__ecereVMethodID_class_OnGetDataFromString])
1407 {
1408 if(!__ecereNameSpace__ecere__com__OnGetDataFromString(memberType, &value, memberString))
1409 result = 0x0;
1410 }
1411 else if(!((unsigned int (*)(void *, void *, const char *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnGetDataFromString])(memberType, &value, memberString))
1412 result = 0x0;
1413 if(thisMember && !thisMember->isProperty)
1414 {
1415 if(_class->type == 2)
1416 {
1417 struct __ecereNameSpace__ecere__com__BitMember * bitMember = (struct __ecereNameSpace__ecere__com__BitMember *)thisMember;
1418
1419 *(unsigned int *)data = (unsigned int)(((*(unsigned int *)data & ~bitMember->mask)) | ((value.ui64 << bitMember->pos) & bitMember->mask));
1420 }
1421 else
1422 *(int *)((unsigned char *)data + (((thisMember->_class->type == 0) ? thisMember->_class->offset : 0) + thisMember->offset)) = value.i;
1423 }
1424 else if(thisMember->isProperty && ((struct __ecereNameSpace__ecere__com__Property *)thisMember)->Set)
1425 {
1426 if(memberType->type == 5 || memberType->type == 0 || memberType->type == 1)
1427 ((void (*)(void *, void *))(void *)((struct __ecereNameSpace__ecere__com__Property *)thisMember)->Set)(data, value.p);
1428 else
1429 ((void (*)(void *, int))(void *)((struct __ecereNameSpace__ecere__com__Property *)thisMember)->Set)(data, value.i);
1430 }
1431 }
1432 }
1433 else
1434 result = 0x0;
1435 count = 0;
1436 memberName[0] = '\0';
1437 }
1438 }
1439 return result;
1440 }
1441
1442 static void __ecereNameSpace__ecere__com__OnCopy(struct __ecereNameSpace__ecere__com__Class * _class, void ** data, void * newData)
1443 {
1444 if(_class->type == 3 || _class->type == 2 || _class->type == 4)
1445 {
1446 struct __ecereNameSpace__ecere__com__Class * dataType = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, _class->dataTypeString);
1447
1448 if(dataType)
1449 ((void (*)(void *, void *, void *))(void *)dataType->_vTbl[__ecereVMethodID_class_OnCopy])(dataType, data, newData);
1450 }
1451 else if(_class->type != 1 && _class->type != 1000)
1452 {
1453 *data = newData;
1454 }
1455 else if(newData)
1456 memcpy(data, newData, _class->typeSize);
1457 else
1458 memset(data, 0, _class->typeSize);
1459 }
1460
1461 static int __ecereNameSpace__ecere__com__DataMember_OnSerialize(struct __ecereNameSpace__ecere__com__DataMember * parentMember, void * data, struct __ecereNameSpace__ecere__com__Instance * channel)
1462 {
1463 struct __ecereNameSpace__ecere__com__DataMember * member;
1464 struct __ecereNameSpace__ecere__com__Instance * module = parentMember->_class->module;
1465
1466 for(member = parentMember->members.first; member; member = member->next)
1467 {
1468 if(member->type == 0)
1469 {
1470 struct __ecereNameSpace__ecere__com__Class * memberType = member->dataTypeClass;
1471
1472 if(!memberType)
1473 memberType = member->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, member->dataTypeString);
1474 if(!memberType)
1475 memberType = member->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "int");
1476 if(memberType->type == 1 || memberType->type == 0 || memberType->type == 5)
1477 {
1478 ((void (*)(void *, void *, void *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnSerialize])(memberType, (unsigned char *)data + member->offset, channel);
1479 }
1480 else
1481 {
1482 struct __ecereNameSpace__ecere__com__DataValue value;
1483
1484 value.i = *(int *)((unsigned char *)data + member->offset);
1485 ((void (*)(void *, void *, void *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnSerialize])(memberType, &value, channel);
1486 }
1487 }
1488 else
1489 {
1490 __ecereNameSpace__ecere__com__DataMember_OnSerialize(member, (unsigned char *)data + member->offset, channel);
1491 }
1492 }
1493 return 0;
1494 }
1495
1496 static void __ecereNameSpace__ecere__com__OnSerialize(struct __ecereNameSpace__ecere__com__Class * _class, void * data, struct __ecereNameSpace__ecere__com__Instance * channel)
1497 {
1498 struct __ecereNameSpace__ecere__com__Instance * module = _class->module;
1499
1500 if(_class->type == 3 || _class->type == 2 || _class->type == 4)
1501 {
1502 struct __ecereNameSpace__ecere__com__Class * dataType = __ecereNameSpace__ecere__com__eSystem_FindClass(module, _class->dataTypeString);
1503
1504 if(dataType)
1505 ((void (*)(void *, void *, void *))(void *)dataType->_vTbl[__ecereVMethodID_class_OnSerialize])(dataType, data, channel);
1506 }
1507 else if(_class->type == 0 || _class->type == 5 || _class->type == 1)
1508 {
1509 {
1510 struct __ecereNameSpace__ecere__com__Class * lastClass = (((void *)0));
1511
1512 while(lastClass != _class)
1513 {
1514 struct __ecereNameSpace__ecere__com__DataMember * member;
1515
1516 for(; _class && (!_class->base || _class->base->type != 1000) && _class != lastClass; _class = _class->base)
1517 ;
1518 lastClass = _class;
1519 for(member = _class->membersAndProperties.first; member; member = member->next)
1520 {
1521 if(member->isProperty || member->type == 0)
1522 {
1523 struct __ecereNameSpace__ecere__com__Class * memberType = member->dataTypeClass;
1524
1525 if(!memberType)
1526 memberType = member->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, member->dataTypeString);
1527 if(memberType)
1528 {
1529 if(member->isProperty)
1530 {
1531 }
1532 else
1533 {
1534 if(!strcmp(memberType->name, "String") || memberType->type == 0 || memberType->type == 5)
1535 {
1536 ((void (*)(void *, void *, void *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnSerialize])(memberType, data ? (*(void **)((unsigned char *)data + member->_class->offset + member->offset)) : (((void *)0)), channel);
1537 }
1538 else
1539 ((void (*)(void *, void *, void *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnSerialize])(memberType, data ? (((unsigned char *)data + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset))) : (((void *)0)), channel);
1540 }
1541 }
1542 else
1543 {
1544 }
1545 }
1546 else
1547 {
1548 __ecereNameSpace__ecere__com__DataMember_OnSerialize(member, data ? ((unsigned char *)data + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset)) : (((void *)0)), channel);
1549 }
1550 }
1551 }
1552 }
1553 }
1554 }
1555
1556 static int __ecereNameSpace__ecere__com__DataMember_OnUnserialize(struct __ecereNameSpace__ecere__com__DataMember * parentMember, void * data, struct __ecereNameSpace__ecere__com__Instance * channel)
1557 {
1558 struct __ecereNameSpace__ecere__com__DataMember * member;
1559 struct __ecereNameSpace__ecere__com__Instance * module = parentMember->_class->module;
1560
1561 for(member = parentMember->members.first; member; member = member->next)
1562 {
1563 if(member->type == 0)
1564 {
1565 struct __ecereNameSpace__ecere__com__Class * memberType = member->dataTypeClass;
1566
1567 if(!memberType)
1568 memberType = member->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, member->dataTypeString);
1569 if(!memberType)
1570 memberType = member->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "int");
1571 if(memberType->type == 1 || memberType->type == 0 || memberType->type == 5)
1572 {
1573 ((void (*)(void *, void *, void *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnUnserialize])(memberType, (unsigned char *)data + member->offset, channel);
1574 }
1575 else
1576 {
1577 struct __ecereNameSpace__ecere__com__DataValue value;
1578
1579 ((void (*)(void *, void *, void *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnUnserialize])(memberType, &value, channel);
1580 *(int *)((unsigned char *)data + member->offset) = value.i;
1581 }
1582 }
1583 else
1584 {
1585 __ecereNameSpace__ecere__com__DataMember_OnUnserialize(member, (unsigned char *)data + member->offset, channel);
1586 }
1587 }
1588 return 0;
1589 }
1590
1591 static void __ecereNameSpace__ecere__com__OnUnserialize(struct __ecereNameSpace__ecere__com__Class * _class, void ** data, struct __ecereNameSpace__ecere__com__Instance * channel)
1592 {
1593 struct __ecereNameSpace__ecere__com__Instance * module = _class->module;
1594
1595 if(_class->type == 3 || _class->type == 2 || _class->type == 4)
1596 {
1597 struct __ecereNameSpace__ecere__com__Class * dataType = __ecereNameSpace__ecere__com__eSystem_FindClass(module, _class->dataTypeString);
1598
1599 if(dataType)
1600 ((void (*)(void *, void *, void *))(void *)dataType->_vTbl[__ecereVMethodID_class_OnUnserialize])(dataType, data, channel);
1601 }
1602 else if(_class->type == 0 || _class->type == 5 || _class->type == 1)
1603 {
1604 if(data)
1605 {
1606 struct __ecereNameSpace__ecere__com__Class * lastClass = (((void *)0));
1607
1608 if(_class->type == 0 || _class->type == 5)
1609 {
1610 data = *data = __ecereNameSpace__ecere__com__eInstance_New(_class);
1611 if(_class->type == 0)
1612 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)((struct __ecereNameSpace__ecere__com__Instance *)data))->_refCount++;
1613 }
1614 else if(_class->type == 1)
1615 memset(data, 0, _class->structSize);
1616 while(lastClass != _class)
1617 {
1618 struct __ecereNameSpace__ecere__com__DataMember * member;
1619
1620 for(; _class && (!_class->base || _class->base->type != 1000) && _class != lastClass; _class = _class->base)
1621 ;
1622 lastClass = _class;
1623 for(member = _class->membersAndProperties.first; member; member = member->next)
1624 {
1625 if(member->isProperty || member->type == 0)
1626 {
1627 struct __ecereNameSpace__ecere__com__Class * memberType = member->dataTypeClass;
1628
1629 if(!memberType)
1630 memberType = member->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, member->dataTypeString);
1631 if(memberType)
1632 {
1633 if(member->isProperty)
1634 {
1635 }
1636 else
1637 ((void (*)(void *, void *, void *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnUnserialize])(memberType, (unsigned char *)data + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset), channel);
1638 }
1639 else
1640 {
1641 }
1642 }
1643 else
1644 {
1645 __ecereNameSpace__ecere__com__DataMember_OnUnserialize(member, (unsigned char *)data + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset), channel);
1646 }
1647 }
1648 }
1649 }
1650 }
1651 }
1652
1653 static int __ecereNameSpace__ecere__com__Integer_OnCompare(struct __ecereNameSpace__ecere__com__Class * _class, int * data1, int * data2)
1654 {
1655 int result = 0;
1656
1657 if(!data1 && !data2)
1658 result = 0;
1659 else if(data1 && !data2)
1660 result = 1;
1661 else if(!data1 && data2)
1662 result = -1;
1663 else if(*data1 > *data2)
1664 result = 1;
1665 else if(*data1 < *data2)
1666 result = -1;
1667 return result;
1668 }
1669
1670 extern int sprintf(char * , char * , ...);
1671
1672 char * __ecereNameSpace__ecere__com__Integer_OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, int * data, char * string, void * fieldData, unsigned int * needClass)
1673 {
1674 sprintf(string, "%d", *data);
1675 return string;
1676 }
1677
1678 static unsigned int __ecereNameSpace__ecere__com__Integer_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * _class, int * data, char * string)
1679 {
1680 char * end;
1681 int result = strtol(string, &end, 0);
1682
1683 if(end > string)
1684 {
1685 *data = result;
1686 return 0x1;
1687 }
1688 return 0x0;
1689 }
1690
1691 static int __ecereNameSpace__ecere__com__UInteger_OnCompare(struct __ecereNameSpace__ecere__com__Class * _class, unsigned int * data1, unsigned int * data2)
1692 {
1693 int result = 0;
1694
1695 if(!data1 && !data2)
1696 result = 0;
1697 else if(data1 && !data2)
1698 result = 1;
1699 else if(!data1 && data2)
1700 result = -1;
1701 else if(*data1 > *data2)
1702 result = 1;
1703 else if(*data1 < *data2)
1704 result = -1;
1705 return result;
1706 }
1707
1708 static char * __ecereNameSpace__ecere__com__UInteger_OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, unsigned int * data, char * string, void * fieldData, unsigned int * needClass)
1709 {
1710 sprintf(string, "%u", *data);
1711 return string;
1712 }
1713
1714 static char * __ecereNameSpace__ecere__com__UIntegerHex_OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, unsigned int * data, char * string, void * fieldData, unsigned int * needClass)
1715 {
1716 sprintf(string, "%x", *data);
1717 return string;
1718 }
1719
1720 extern unsigned long strtoul(const char *  nptr, char * *  endptr, int base);
1721
1722 static unsigned int __ecereNameSpace__ecere__com__UInteger_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * _class, unsigned int * data, char * string)
1723 {
1724 char * end;
1725 unsigned int result = strtoul(string, &end, 0);
1726
1727 if(end > string)
1728 {
1729 *data = result;
1730 return 0x1;
1731 }
1732 return 0x0;
1733 }
1734
1735 static int __ecereNameSpace__ecere__com__Byte_OnCompare(struct __ecereNameSpace__ecere__com__Class * _class, unsigned char * data1, unsigned char * data2)
1736 {
1737 int result = 0;
1738
1739 if(!data1 && !data2)
1740 result = 0;
1741 else if(data1 && !data2)
1742 result = 1;
1743 else if(!data1 && data2)
1744 result = -1;
1745 else if(*data1 > *data2)
1746 result = 1;
1747 else if(*data1 < *data2)
1748 result = -1;
1749 return result;
1750 }
1751
1752 static char * __ecereNameSpace__ecere__com__Byte_OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, unsigned char * data, char * string, void * fieldData, unsigned int * needClass)
1753 {
1754 sprintf(string, "%u", (int)*data);
1755 return string;
1756 }
1757
1758 static char * __ecereNameSpace__ecere__com__Char_OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, char * data, char * string, void * fieldData, unsigned int * needClass)
1759 {
1760 if(needClass && *needClass)
1761 {
1762 char ch = *data;
1763
1764 if(ch == '\t')
1765 strcpy(string, "'\t'");
1766 else if(ch == '\n')
1767 strcpy(string, "'\n'");
1768 else if(ch == '\r')
1769 strcpy(string, "'\r'");
1770 else if(ch == '\a')
1771 strcpy(string, "'\a'");
1772 else if(ch == '\\')
1773 strcpy(string, "'\\'");
1774 else if(ch < (char)32 || ch >= (char)127)
1775 sprintf(string, "'\o'", ch);
1776 else
1777 sprintf(string, "'%c'", ch);
1778 }
1779 else
1780 sprintf(string, "%c", *data);
1781 return string;
1782 }
1783
1784 static unsigned int __ecereNameSpace__ecere__com__Byte_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * _class, unsigned char * data, char * string)
1785 {
1786 char * end;
1787 unsigned char result = (unsigned char)strtoul(string, &end, 0);
1788
1789 if(end > string)
1790 {
1791 *data = result;
1792 return 0x1;
1793 }
1794 return 0x0;
1795 }
1796
1797 static int __ecereNameSpace__ecere__com__Int64_OnCompare(struct __ecereNameSpace__ecere__com__Class * _class, long long * data1, long long * data2)
1798 {
1799 int result = 0;
1800
1801 if(!data1 && !data2)
1802 result = 0;
1803 else if(data1 && !data2)
1804 result = 1;
1805 else if(!data1 && data2)
1806 result = -1;
1807 else if(*data1 > *data2)
1808 result = 1;
1809 else if(*data1 < *data2)
1810 result = -1;
1811 return result;
1812 }
1813
1814 static int __ecereNameSpace__ecere__com__UInt64_OnCompare(struct __ecereNameSpace__ecere__com__Class * _class, uint64 * data1, uint64 * data2)
1815 {
1816 int result = 0;
1817
1818 if(!data1 && !data2)
1819 result = 0;
1820 else if(data1 && !data2)
1821 result = 1;
1822 else if(!data1 && data2)
1823 result = -1;
1824 else if(*data1 > *data2)
1825 result = 1;
1826 else if(*data1 < *data2)
1827 result = -1;
1828 return result;
1829 }
1830
1831 extern int __ecereNameSpace__ecere__com__GetRuntimePlatform(void);
1832
1833 static char * __ecereNameSpace__ecere__com__Int64_OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, long long * data, char * string, void * fieldData, unsigned int * needClass)
1834 {
1835 sprintf(string, ((__ecereNameSpace__ecere__com__GetRuntimePlatform() == 1) ? "%I64d" : "%lld"), *data);
1836 return string;
1837 }
1838
1839 static char * __ecereNameSpace__ecere__com__UInt64_OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, uint64 * data, char * string, void * fieldData, unsigned int * needClass)
1840 {
1841 sprintf(string, ((__ecereNameSpace__ecere__com__GetRuntimePlatform() == 1) ? "%I64u" : "%llu"), *data);
1842 return string;
1843 }
1844
1845 static char * __ecereNameSpace__ecere__com__UInt64Hex_OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, uint64 * data, char * string, void * fieldData, unsigned int * needClass)
1846 {
1847 sprintf(string, ((__ecereNameSpace__ecere__com__GetRuntimePlatform() == 1) ? "0x%I64X" : "0x%llX"), *data);
1848 return string;
1849 }
1850
1851 static char * __ecereNameSpace__ecere__com__UIntPtr64_OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, uint64 data, char * string, void * fieldData, unsigned int * needClass)
1852 {
1853 return __ecereNameSpace__ecere__com__UInt64Hex_OnGetString(_class, &data, string, fieldData, needClass);
1854 }
1855
1856 static char * __ecereNameSpace__ecere__com__UIntPtr32_OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, unsigned int data, char * string, void * fieldData, unsigned int * needClass)
1857 {
1858 return __ecereNameSpace__ecere__com__UIntegerHex_OnGetString(_class, &data, string, fieldData, needClass);
1859 }
1860
1861 static char * __ecereNameSpace__ecere__com__IntPtr64_OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, uint64 data, char * string, void * fieldData, unsigned int * needClass)
1862 {
1863 return __ecereNameSpace__ecere__com__Int64_OnGetString(_class, &data, string, fieldData, needClass);
1864 }
1865
1866 static char * __ecereNameSpace__ecere__com__IntPtr32_OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, unsigned int data, char * string, void * fieldData, unsigned int * needClass)
1867 {
1868 return __ecereNameSpace__ecere__com__Integer_OnGetString(_class, &data, string, fieldData, needClass);
1869 }
1870
1871 extern long long __ecereNameSpace__ecere__com___strtoi64(char *  string, char * *  endString, int base);
1872
1873 static unsigned int __ecereNameSpace__ecere__com__Int64_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * _class, uint64 * data, char * string)
1874 {
1875 char * end;
1876 uint64 result = __ecereNameSpace__ecere__com___strtoi64(string, &end, 0);
1877
1878 if(end > string)
1879 {
1880 *data = result;
1881 return 0x1;
1882 }
1883 return 0x0;
1884 }
1885
1886 extern uint64 __ecereNameSpace__ecere__com___strtoui64(char *  string, char * *  endString, int base);
1887
1888 static unsigned int __ecereNameSpace__ecere__com__UInt64_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * _class, uint64 * data, char * string)
1889 {
1890 char * end;
1891 uint64 result = __ecereNameSpace__ecere__com___strtoui64(string, &end, 0);
1892
1893 if(end > string)
1894 {
1895 *data = result;
1896 return 0x1;
1897 }
1898 return 0x0;
1899 }
1900
1901 int __ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_WriteData;
1902
1903 void __ecereNameSpace__ecere__com__Byte_OnSerialize(struct __ecereNameSpace__ecere__com__Class * _class, unsigned char * data, struct __ecereNameSpace__ecere__com__Instance * channel)
1904 {
1905 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, unsigned char *  data, unsigned int numBytes))channel->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_WriteData])(channel, data, 1);
1906 }
1907
1908 int __ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_ReadData;
1909
1910 void __ecereNameSpace__ecere__com__Byte_OnUnserialize(struct __ecereNameSpace__ecere__com__Class * _class, unsigned char * data, struct __ecereNameSpace__ecere__com__Instance * channel)
1911 {
1912 if(((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, unsigned char *  data, unsigned int numBytes))channel->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_ReadData])(channel, data, 1) != 1)
1913 *data = (unsigned char)0;
1914 }
1915
1916 void __ecereNameSpace__ecere__com__Int_OnSerialize(struct __ecereNameSpace__ecere__com__Class * _class, int * data, struct __ecereNameSpace__ecere__com__Instance * channel)
1917 {
1918 unsigned char bytes[4];
1919
1920 (bytes)[0] = (unsigned char)(((*data) >> 24) & 0xFF);
1921 (bytes)[1] = (unsigned char)(((*data) >> 16) & 0xFF);
1922 (bytes)[2] = (unsigned char)(((*data) >> 8) & 0xFF);
1923 (bytes)[3] = (unsigned char)((*data) & 0xFF);
1924 ;
1925 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, unsigned char *  data, unsigned int numBytes))channel->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_WriteData])(channel, bytes, 4);
1926 }
1927
1928 void __ecereNameSpace__ecere__com__Int_OnUnserialize(struct __ecereNameSpace__ecere__com__Class * _class, int * data, struct __ecereNameSpace__ecere__com__Instance * channel)
1929 {
1930 unsigned char bytes[4];
1931
1932 if(((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, unsigned char *  data, unsigned int numBytes))channel->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_ReadData])(channel, bytes, 4) == 4)
1933 *data = (unsigned int)(((bytes)[0] << (unsigned char)24) | ((bytes)[1] << (unsigned char)16) | ((bytes)[2] << (unsigned char)8) | (bytes)[3]);
1934 else
1935 *data = 0;
1936 }
1937
1938 void __ecereNameSpace__ecere__com__Enum_OnSerialize(struct __ecereNameSpace__ecere__com__Class * _class, int * data, struct __ecereNameSpace__ecere__com__Instance * channel)
1939 {
1940 struct __ecereNameSpace__ecere__com__Class * dataType = strcmp(_class->dataTypeString, "int") ? __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, _class->dataTypeString) : (((void *)0));
1941
1942 if(dataType)
1943 ((void (*)(void *, void *, void *))(void *)dataType->_vTbl[__ecereVMethodID_class_OnSerialize])(dataType, data, channel);
1944 else
1945 __ecereNameSpace__ecere__com__Int_OnSerialize(_class, data, channel);
1946 }
1947
1948 void __ecereNameSpace__ecere__com__Enum_OnUnserialize(struct __ecereNameSpace__ecere__com__Class * _class, int * data, struct __ecereNameSpace__ecere__com__Instance * channel)
1949 {
1950 struct __ecereNameSpace__ecere__com__Class * dataType = strcmp(_class->dataTypeString, "int") ? __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, _class->dataTypeString) : (((void *)0));
1951
1952 if(dataType)
1953 ((void (*)(void *, void *, void *))(void *)dataType->_vTbl[__ecereVMethodID_class_OnUnserialize])(dataType, data, channel);
1954 else
1955 __ecereNameSpace__ecere__com__Int_OnUnserialize(_class, data, channel);
1956 }
1957
1958 void __ecereNameSpace__ecere__com__Int64_OnSerialize(struct __ecereNameSpace__ecere__com__Class * _class, long long * data, struct __ecereNameSpace__ecere__com__Instance * channel)
1959 {
1960 unsigned char bytes[8];
1961
1962 (bytes)[0] = (unsigned char)(((*data) >> 56) & 0xFF);
1963 (bytes)[1] = (unsigned char)(((*data) >> 48) & 0xFF);
1964 (bytes)[2] = (unsigned char)(((*data) >> 40) & 0xFF);
1965 (bytes)[3] = (unsigned char)(((*data) >> 32) & 0xFF);
1966 (bytes)[4] = (unsigned char)(((*data) >> 24) & 0xFF);
1967 (bytes)[5] = (unsigned char)(((*data) >> 16) & 0xFF);
1968 (bytes)[6] = (unsigned char)(((*data) >> 8) & 0xFF);
1969 (bytes)[7] = (unsigned char)((*data) & 0xFF);
1970 ;
1971 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, unsigned char *  data, unsigned int numBytes))channel->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_WriteData])(channel, bytes, 8);
1972 }
1973
1974 void __ecereNameSpace__ecere__com__Int64_OnUnserialize(struct __ecereNameSpace__ecere__com__Class * _class, long long * data, struct __ecereNameSpace__ecere__com__Instance * channel)
1975 {
1976 unsigned char bytes[8];
1977
1978 if(((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, unsigned char *  data, unsigned int numBytes))channel->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_ReadData])(channel, bytes, 8) == 8)
1979 *data = (((uint64)(bytes)[0] << 56) | ((uint64)(bytes)[1] << 48) | ((uint64)(bytes)[2] << 40) | ((uint64)(bytes)[3] << 32) | ((uint64)(bytes)[4] << 24) | ((bytes)[5] << (unsigned char)16) | ((bytes)[6] << (unsigned char)8) | (bytes)[7]);
1980 else
1981 *data = 0;
1982 }
1983
1984 void __ecereNameSpace__ecere__com__Word_OnSerialize(struct __ecereNameSpace__ecere__com__Class * _class, unsigned short * data, struct __ecereNameSpace__ecere__com__Instance * channel)
1985 {
1986 unsigned char bytes[2];
1987
1988 (bytes)[0] = (unsigned char)(((*data) >> (unsigned short)8) & (unsigned short)0xFF);
1989 (bytes)[1] = (unsigned char)(((*data)) & (unsigned short)0xFF);
1990 ;
1991 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, unsigned char *  data, unsigned int numBytes))channel->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_WriteData])(channel, bytes, 2);
1992 }
1993
1994 void __ecereNameSpace__ecere__com__Word_OnUnserialize(struct __ecereNameSpace__ecere__com__Class * _class, unsigned short * data, struct __ecereNameSpace__ecere__com__Instance * channel)
1995 {
1996 unsigned char bytes[2];
1997
1998 if(((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, unsigned char *  data, unsigned int numBytes))channel->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_ReadData])(channel, bytes, 2) == 2)
1999 *data = (unsigned short)(((bytes)[0] << (unsigned char)8) | (bytes)[1]);
2000 else
2001 *data = (unsigned short)0;
2002 }
2003
2004 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_RegisterClass(int type, char *  name, char *  baseName, int size, int sizeClass, unsigned int (*  Constructor)(void * ), void (*  Destructor)(void * ), struct __ecereNameSpace__ecere__com__Instance * module, int declMode, int inheritanceAccess);
2005
2006 extern char *  __ecereNameSpace__ecere__sys__CopyString(char *  string);
2007
2008 extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddMethod(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, char *  type, void *  function, int declMode);
2009
2010 static void __ecereNameSpace__ecere__com__RegisterClass_Integer(struct __ecereNameSpace__ecere__com__Instance * module)
2011 {
2012 struct __ecereNameSpace__ecere__com__Class * integerClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "int", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
2013
2014 integerClass->type = 1000;
2015 (__ecereNameSpace__ecere__com__eSystem_Delete(integerClass->dataTypeString), integerClass->dataTypeString = 0);
2016 integerClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("int");
2017 integerClass->structSize = 0;
2018 integerClass->typeSize = sizeof(int);
2019 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnCompare", (((void *)0)), __ecereNameSpace__ecere__com__Integer_OnCompare, 1);
2020 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetString", (((void *)0)), __ecereNameSpace__ecere__com__Integer_OnGetString, 1);
2021 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetDataFromString", (((void *)0)), __ecereNameSpace__ecere__com__Integer_OnGetDataFromString, 1);
2022 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Int_OnSerialize, 1);
2023 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Int_OnUnserialize, 1);
2024 integerClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "int64", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
2025 integerClass->type = 1000;
2026 integerClass->structSize = 0;
2027 integerClass->typeSize = sizeof(long long);
2028 (__ecereNameSpace__ecere__com__eSystem_Delete(integerClass->dataTypeString), integerClass->dataTypeString = 0);
2029 integerClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("int64");
2030 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetString", (((void *)0)), __ecereNameSpace__ecere__com__Int64_OnGetString, 1);
2031 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnCompare", (((void *)0)), __ecereNameSpace__ecere__com__Int64_OnCompare, 1);
2032 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetDataFromString", (((void *)0)), __ecereNameSpace__ecere__com__Int64_OnGetDataFromString, 1);
2033 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Int64_OnSerialize, 1);
2034 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Int64_OnUnserialize, 1);
2035 integerClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "uint", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
2036 integerClass->type = 1000;
2037 (__ecereNameSpace__ecere__com__eSystem_Delete(integerClass->dataTypeString), integerClass->dataTypeString = 0);
2038 integerClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("unsigned int");
2039 integerClass->structSize = 0;
2040 integerClass->typeSize = sizeof(unsigned int);
2041 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnCompare", (((void *)0)), __ecereNameSpace__ecere__com__UInteger_OnCompare, 1);
2042 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetString", (((void *)0)), __ecereNameSpace__ecere__com__UInteger_OnGetString, 1);
2043 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetDataFromString", (((void *)0)), __ecereNameSpace__ecere__com__UInteger_OnGetDataFromString, 1);
2044 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Int_OnSerialize, 1);
2045 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Int_OnUnserialize, 1);
2046 integerClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "unsigned int", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
2047 integerClass->type = 1000;
2048 (__ecereNameSpace__ecere__com__eSystem_Delete(integerClass->dataTypeString), integerClass->dataTypeString = 0);
2049 integerClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("unsigned int");
2050 integerClass->structSize = 0;
2051 integerClass->typeSize = sizeof(unsigned int);
2052 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnCompare", (((void *)0)), __ecereNameSpace__ecere__com__UInteger_OnCompare, 1);
2053 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetString", (((void *)0)), __ecereNameSpace__ecere__com__UInteger_OnGetString, 1);
2054 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetDataFromString", (((void *)0)), __ecereNameSpace__ecere__com__UInteger_OnGetDataFromString, 1);
2055 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Int_OnSerialize, 1);
2056 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Int_OnUnserialize, 1);
2057 integerClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "uint16", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
2058 integerClass->type = 1000;
2059 (__ecereNameSpace__ecere__com__eSystem_Delete(integerClass->dataTypeString), integerClass->dataTypeString = 0);
2060 integerClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("unsigned short");
2061 integerClass->structSize = 0;
2062 integerClass->typeSize = sizeof(unsigned short);
2063 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Word_OnSerialize, 1);
2064 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Word_OnUnserialize, 1);
2065 integerClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "short", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
2066 integerClass->type = 1000;
2067 (__ecereNameSpace__ecere__com__eSystem_Delete(integerClass->dataTypeString), integerClass->dataTypeString = 0);
2068 integerClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("short");
2069 integerClass->structSize = 0;
2070 integerClass->typeSize = sizeof(short);
2071 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Word_OnSerialize, 1);
2072 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Word_OnUnserialize, 1);
2073 integerClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "uint32", "uint", 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
2074 integerClass->type = 1000;
2075 (__ecereNameSpace__ecere__com__eSystem_Delete(integerClass->dataTypeString), integerClass->dataTypeString = 0);
2076 integerClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("unsigned int");
2077 integerClass->structSize = 0;
2078 integerClass->typeSize = sizeof(unsigned int);
2079 integerClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "uint64", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
2080 integerClass->type = 1000;
2081 (__ecereNameSpace__ecere__com__eSystem_Delete(integerClass->dataTypeString), integerClass->dataTypeString = 0);
2082 integerClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("uint64");
2083 integerClass->structSize = 0;
2084 integerClass->typeSize = sizeof(uint64);
2085 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetString", (((void *)0)), __ecereNameSpace__ecere__com__UInt64_OnGetString, 1);
2086 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetDataFromString", (((void *)0)), __ecereNameSpace__ecere__com__UInt64_OnGetDataFromString, 1);
2087 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Int64_OnSerialize, 1);
2088 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Int64_OnUnserialize, 1);
2089 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnCompare", (((void *)0)), __ecereNameSpace__ecere__com__UInt64_OnCompare, 1);
2090 integerClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "byte", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
2091 integerClass->type = 1000;
2092 (__ecereNameSpace__ecere__com__eSystem_Delete(integerClass->dataTypeString), integerClass->dataTypeString = 0);
2093 integerClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("unsigned char");
2094 integerClass->structSize = 0;
2095 integerClass->typeSize = sizeof(unsigned char);
2096 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnCompare", (((void *)0)), __ecereNameSpace__ecere__com__Byte_OnCompare, 1);
2097 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetString", (((void *)0)), __ecereNameSpace__ecere__com__Byte_OnGetString, 1);
2098 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetDataFromString", (((void *)0)), __ecereNameSpace__ecere__com__Byte_OnGetDataFromString, 1);
2099 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Byte_OnSerialize, 1);
2100 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Byte_OnUnserialize, 1);
2101 integerClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "char", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
2102 integerClass->type = 1000;
2103 (__ecereNameSpace__ecere__com__eSystem_Delete(integerClass->dataTypeString), integerClass->dataTypeString = 0);
2104 integerClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("char");
2105 integerClass->structSize = 0;
2106 integerClass->typeSize = sizeof(char);
2107 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnCompare", (((void *)0)), __ecereNameSpace__ecere__com__Byte_OnCompare, 1);
2108 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetString", (((void *)0)), __ecereNameSpace__ecere__com__Char_OnGetString, 1);
2109 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetDataFromString", (((void *)0)), __ecereNameSpace__ecere__com__Byte_OnGetDataFromString, 1);
2110 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Byte_OnSerialize, 1);
2111 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Byte_OnUnserialize, 1);
2112 integerClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "intsize", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
2113 integerClass->type = 1000;
2114 (__ecereNameSpace__ecere__com__eSystem_Delete(integerClass->dataTypeString), integerClass->dataTypeString = 0);
2115 integerClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("ssize_t");
2116 integerClass->structSize = 0;
2117 integerClass->typeSize = sizeof(ssize_t);
2118 if(sizeof(ssize_t) == 8)
2119 {
2120 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetString", (((void *)0)), __ecereNameSpace__ecere__com__Int64_OnGetString, 1);
2121 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetDataFromString", (((void *)0)), __ecereNameSpace__ecere__com__Int64_OnGetDataFromString, 1);
2122 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Int64_OnSerialize, 1);
2123 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Int64_OnUnserialize, 1);
2124 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnCompare", (((void *)0)), __ecereNameSpace__ecere__com__Int64_OnCompare, 1);
2125 }
2126 else
2127 {
2128 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnCompare", (((void *)0)), __ecereNameSpace__ecere__com__Integer_OnCompare, 1);
2129 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetString", (((void *)0)), __ecereNameSpace__ecere__com__Integer_OnGetString, 1);
2130 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetDataFromString", (((void *)0)), __ecereNameSpace__ecere__com__Integer_OnGetDataFromString, 1);
2131 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Int_OnSerialize, 1);
2132 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Int_OnUnserialize, 1);
2133 }
2134 integerClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "uintsize", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
2135 integerClass->type = 1000;
2136 (__ecereNameSpace__ecere__com__eSystem_Delete(integerClass->dataTypeString), integerClass->dataTypeString = 0);
2137 integerClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("size_t");
2138 integerClass->structSize = 0;
2139 integerClass->typeSize = sizeof(size_t);
2140 if(sizeof(size_t) == 8)
2141 {
2142 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetString", (((void *)0)), __ecereNameSpace__ecere__com__UInt64Hex_OnGetString, 1);
2143 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetDataFromString", (((void *)0)), __ecereNameSpace__ecere__com__UInt64_OnGetDataFromString, 1);
2144 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Int64_OnSerialize, 1);
2145 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Int64_OnUnserialize, 1);
2146 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnCompare", (((void *)0)), __ecereNameSpace__ecere__com__UInt64_OnCompare, 1);
2147 }
2148 else
2149 {
2150 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetString", (((void *)0)), __ecereNameSpace__ecere__com__UIntegerHex_OnGetString, 1);
2151 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetDataFromString", (((void *)0)), __ecereNameSpace__ecere__com__UInteger_OnGetDataFromString, 1);
2152 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Int_OnSerialize, 1);
2153 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Int_OnUnserialize, 1);
2154 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnCompare", (((void *)0)), __ecereNameSpace__ecere__com__UInteger_OnCompare, 1);
2155 }
2156 integerClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "uintptr", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
2157 integerClass->type = 1000;
2158 (__ecereNameSpace__ecere__com__eSystem_Delete(integerClass->dataTypeString), integerClass->dataTypeString = 0);
2159 integerClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("uintptr_t");
2160 integerClass->structSize = 0;
2161 integerClass->typeSize = sizeof(uintptr_t);
2162 if(sizeof(uintptr_t) == 8)
2163 {
2164 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetString", (((void *)0)), __ecereNameSpace__ecere__com__UIntPtr64_OnGetString, 1);
2165 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetDataFromString", (((void *)0)), __ecereNameSpace__ecere__com__UInt64_OnGetDataFromString, 1);
2166 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Int64_OnSerialize, 1);
2167 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Int64_OnUnserialize, 1);
2168 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnCompare", (((void *)0)), __ecereNameSpace__ecere__com__UInt64_OnCompare, 1);
2169 }
2170 else
2171 {
2172 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetString", (((void *)0)), __ecereNameSpace__ecere__com__UIntPtr32_OnGetString, 1);
2173 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetDataFromString", (((void *)0)), __ecereNameSpace__ecere__com__UInteger_OnGetDataFromString, 1);
2174 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Int_OnSerialize, 1);
2175 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Int_OnUnserialize, 1);
2176 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnCompare", (((void *)0)), __ecereNameSpace__ecere__com__UInteger_OnCompare, 1);
2177 }
2178 integerClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "intptr", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
2179 integerClass->type = 1000;
2180 (__ecereNameSpace__ecere__com__eSystem_Delete(integerClass->dataTypeString), integerClass->dataTypeString = 0);
2181 integerClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("intptr_t");
2182 integerClass->structSize = 0;
2183 integerClass->typeSize = sizeof(intptr_t);
2184 if(sizeof(intptr_t) == 8)
2185 {
2186 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetString", (((void *)0)), __ecereNameSpace__ecere__com__IntPtr64_OnGetString, 1);
2187 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetDataFromString", (((void *)0)), __ecereNameSpace__ecere__com__Int64_OnGetDataFromString, 1);
2188 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Int64_OnSerialize, 1);
2189 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Int64_OnUnserialize, 1);
2190 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnCompare", (((void *)0)), __ecereNameSpace__ecere__com__Int64_OnCompare, 1);
2191 }
2192 else
2193 {
2194 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetString", (((void *)0)), __ecereNameSpace__ecere__com__IntPtr32_OnGetString, 1);
2195 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetDataFromString", (((void *)0)), __ecereNameSpace__ecere__com__Integer_OnGetDataFromString, 1);
2196 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Int_OnSerialize, 1);
2197 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Int_OnUnserialize, 1);
2198 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnCompare", (((void *)0)), __ecereNameSpace__ecere__com__Integer_OnCompare, 1);
2199 }
2200 }
2201
2202 static int __ecereNameSpace__ecere__com__Float_OnCompare(struct __ecereNameSpace__ecere__com__Class * _class, float * data1, float * data2)
2203 {
2204 int result = 0;
2205
2206 if(!data1 && !data2)
2207 result = 0;
2208 else if(data1 && !data2)
2209 result = 1;
2210 else if(!data1 && data2)
2211 result = -1;
2212 else if(*data1 > *data2)
2213 result = 1;
2214 else if(*data1 < *data2)
2215 result = -1;
2216 return result;
2217 }
2218
2219 static char * __ecereNameSpace__ecere__com__Float_OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, float * data, char * string, void * fieldData, unsigned int * needClass)
2220 {
2221 int c;
2222 int last = 0;
2223 int numDigits = 7, num = 1;
2224 char format[10];
2225
2226 while(numDigits && (float)num < *data)
2227 numDigits--, num *= 10;
2228 sprintf(format, "%%.%df", numDigits);
2229 sprintf(string, format, *data);
2230 c = strlen(string) - 1;
2231 for(; c >= 0; c--)
2232 {
2233 if(string[c] != '0')
2234 last = ((last > c) ? last : c);
2235 if(string[c] == '.')
2236 {
2237 if(last == c)
2238 string[c] = (char)0;
2239 else
2240 string[last + 1] = (char)0;
2241 break;
2242 }
2243 }
2244 return string;
2245 }
2246
2247 extern double strtod(char * , char * * );
2248
2249 static unsigned int __ecereNameSpace__ecere__com__Float_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * _class, float * data, char * string)
2250 {
2251 char * end;
2252 float result = (float)strtod(string, &end);
2253
2254 if(end > string)
2255 {
2256 *data = result;
2257 return 0x1;
2258 }
2259 return 0x0;
2260 }
2261
2262 static void __ecereNameSpace__ecere__com__Float_OnSerialize(struct __ecereNameSpace__ecere__com__Class * _class, float * data, struct __ecereNameSpace__ecere__com__Instance * channel)
2263 {
2264 unsigned char bytes[4];
2265
2266 (bytes)[0] = (unsigned char)(((*(unsigned int *)data) >> 24) & 0xFF);
2267 (bytes)[1] = (unsigned char)(((*(unsigned int *)data) >> 16) & 0xFF);
2268 (bytes)[2] = (unsigned char)(((*(unsigned int *)data) >> 8) & 0xFF);
2269 (bytes)[3] = (unsigned char)((*(unsigned int *)data) & 0xFF);
2270 ;
2271 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, unsigned char *  data, unsigned int numBytes))channel->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_WriteData])(channel, bytes, 4);
2272 }
2273
2274 static void __ecereNameSpace__ecere__com__Float_OnUnserialize(struct __ecereNameSpace__ecere__com__Class * _class, float * data, struct __ecereNameSpace__ecere__com__Instance * channel)
2275 {
2276 unsigned char bytes[4];
2277
2278 if(((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, unsigned char *  data, unsigned int numBytes))channel->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_ReadData])(channel, bytes, 4) == 4)
2279 *(unsigned int *)data = (unsigned int)(((bytes)[0] << (unsigned char)24) | ((bytes)[1] << (unsigned char)16) | ((bytes)[2] << (unsigned char)8) | (bytes)[3]);
2280 else
2281 *data = (float)0;
2282 }
2283
2284 static void __ecereNameSpace__ecere__com__RegisterClass_Float(struct __ecereNameSpace__ecere__com__Instance * module)
2285 {
2286 struct __ecereNameSpace__ecere__com__Class * floatClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "float", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
2287
2288 floatClass->type = 1000;
2289 (__ecereNameSpace__ecere__com__eSystem_Delete(floatClass->dataTypeString), floatClass->dataTypeString = 0);
2290 floatClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("float");
2291 floatClass->structSize = 0;
2292 floatClass->typeSize = sizeof(float);
2293 __ecereNameSpace__ecere__com__eClass_AddMethod(floatClass, "OnCompare", (((void *)0)), __ecereNameSpace__ecere__com__Float_OnCompare, 1);
2294 __ecereNameSpace__ecere__com__eClass_AddMethod(floatClass, "OnGetString", (((void *)0)), __ecereNameSpace__ecere__com__Float_OnGetString, 1);
2295 __ecereNameSpace__ecere__com__eClass_AddMethod(floatClass, "OnGetDataFromString", (((void *)0)), __ecereNameSpace__ecere__com__Float_OnGetDataFromString, 1);
2296 __ecereNameSpace__ecere__com__eClass_AddMethod(floatClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Float_OnSerialize, 1);
2297 __ecereNameSpace__ecere__com__eClass_AddMethod(floatClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Float_OnUnserialize, 1);
2298 }
2299
2300 static int __ecereNameSpace__ecere__com__Double_OnCompare(struct __ecereNameSpace__ecere__com__Class * _class, double * data1, double * data2)
2301 {
2302 int result = 0;
2303
2304 if(!data1 && !data2)
2305 result = 0;
2306 else if(data1 && !data2)
2307 result = 1;
2308 else if(!data1 && data2)
2309 result = -1;
2310 else if(*data1 > *data2)
2311 result = 1;
2312 else if(*data1 < *data2)
2313 result = -1;
2314 return result;
2315 }
2316
2317 static char * __ecereNameSpace__ecere__com__Double_OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, double * data, char * string, void * fieldData, unsigned int * needClass)
2318 {
2319 int c;
2320 int last = 0;
2321
2322 if(runtimePlatform == 1)
2323 sprintf(string, "%.15g", *data);
2324 else
2325 sprintf(string, "%.13lf", *data);
2326 c = strlen(string) - 1;
2327 for(; c >= 0; c--)
2328 {
2329 if(string[c] != '0')
2330 last = ((last > c) ? last : c);
2331 if(string[c] == '.')
2332 {
2333 if(last == c)
2334 string[c] = (char)0;
2335 else
2336 string[last + 1] = (char)0;
2337 break;
2338 }
2339 }
2340 return string;
2341 }
2342
2343 static unsigned int __ecereNameSpace__ecere__com__Double_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * _class, double * data, char * string)
2344 {
2345 char * end;
2346 double result;
2347
2348 result = strtod(string, &end);
2349 if(end > string)
2350 {
2351 *data = result;
2352 return 0x1;
2353 }
2354 return 0x0;
2355 }
2356
2357 static void __ecereNameSpace__ecere__com__Double_OnSerialize(struct __ecereNameSpace__ecere__com__Class * _class, double * data, struct __ecereNameSpace__ecere__com__Instance * channel)
2358 {
2359 unsigned char bytes[8];
2360
2361 (bytes)[0] = (unsigned char)(((*(uint64 *)data) >> 56) & 0xFF);
2362 (bytes)[1] = (unsigned char)(((*(uint64 *)data) >> 48) & 0xFF);
2363 (bytes)[2] = (unsigned char)(((*(uint64 *)data) >> 40) & 0xFF);
2364 (bytes)[3] = (unsigned char)(((*(uint64 *)data) >> 32) & 0xFF);
2365 (bytes)[4] = (unsigned char)(((*(uint64 *)data) >> 24) & 0xFF);
2366 (bytes)[5] = (unsigned char)(((*(uint64 *)data) >> 16) & 0xFF);
2367 (bytes)[6] = (unsigned char)(((*(uint64 *)data) >> 8) & 0xFF);
2368 (bytes)[7] = (unsigned char)((*(uint64 *)data) & 0xFF);
2369 ;
2370 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, unsigned char *  data, unsigned int numBytes))channel->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_WriteData])(channel, bytes, 8);
2371 }
2372
2373 static void __ecereNameSpace__ecere__com__Double_OnUnserialize(struct __ecereNameSpace__ecere__com__Class * _class, double * data, struct __ecereNameSpace__ecere__com__Instance * channel)
2374 {
2375 unsigned char bytes[8];
2376
2377 if(((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, unsigned char *  data, unsigned int numBytes))channel->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_ReadData])(channel, bytes, 8) == 8)
2378 *(uint64 *)data = (((uint64)(bytes)[0] << 56) | ((uint64)(bytes)[1] << 48) | ((uint64)(bytes)[2] << 40) | ((uint64)(bytes)[3] << 32) | ((uint64)(bytes)[4] << 24) | ((bytes)[5] << (unsigned char)16) | ((bytes)[6] << (unsigned char)8) | (bytes)[7]);
2379 else
2380 *data = (double)0;
2381 }
2382
2383 static void __ecereNameSpace__ecere__com__RegisterClass_Double(struct __ecereNameSpace__ecere__com__Instance * module)
2384 {
2385 struct __ecereNameSpace__ecere__com__Class * doubleClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "double", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
2386
2387 doubleClass->type = 1000;
2388 (__ecereNameSpace__ecere__com__eSystem_Delete(doubleClass->dataTypeString), doubleClass->dataTypeString = 0);
2389 doubleClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("double");
2390 doubleClass->structSize = 0;
2391 doubleClass->typeSize = sizeof(double);
2392 __ecereNameSpace__ecere__com__eClass_AddMethod(doubleClass, "OnCompare", (((void *)0)), __ecereNameSpace__ecere__com__Double_OnCompare, 1);
2393 __ecereNameSpace__ecere__com__eClass_AddMethod(doubleClass, "OnGetString", (((void *)0)), __ecereNameSpace__ecere__com__Double_OnGetString, 1);
2394 __ecereNameSpace__ecere__com__eClass_AddMethod(doubleClass, "OnGetDataFromString", (((void *)0)), __ecereNameSpace__ecere__com__Double_OnGetDataFromString, 1);
2395 __ecereNameSpace__ecere__com__eClass_AddMethod(doubleClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Double_OnSerialize, 1);
2396 __ecereNameSpace__ecere__com__eClass_AddMethod(doubleClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Double_OnUnserialize, 1);
2397 }
2398
2399 struct __ecereNameSpace__ecere__com__StaticString
2400 {
2401 char string[1];
2402 } __attribute__ ((gcc_struct));
2403
2404 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__StaticString;
2405
2406 void __ecereMethod___ecereNameSpace__ecere__com__StaticString_OnSerialize(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__StaticString * this, struct __ecereNameSpace__ecere__com__Instance * channel)
2407 {
2408 int len = this ? strlen(this->string) : 0;
2409
2410 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, unsigned char *  data, unsigned int numBytes))channel->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_WriteData])(channel, this ? this->string : "", len + 1);
2411 }
2412
2413 void __ecereMethod___ecereNameSpace__ecere__com__StaticString_OnUnserialize(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__StaticString * this, struct __ecereNameSpace__ecere__com__Instance * channel)
2414 {
2415 if(this)
2416 {
2417 int c;
2418 unsigned int size;
2419
2420 for(c = 0; ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, unsigned char *  data, unsigned int numBytes))channel->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_ReadData])(channel, &(*this).string[c], 1) && (*this).string[c]; c++)
2421 ;
2422 (*this).string[c++] = '\0';
2423 }
2424 }
2425
2426 int __ecereMethod___ecereNameSpace__ecere__com__StaticString_OnCompare(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__StaticString * this, struct __ecereNameSpace__ecere__com__StaticString * string2)
2427 {
2428 int result = 0;
2429
2430 if(this && string2)
2431 result = (strcasecmp)(this->string, string2->string);
2432 else if(!this && string2)
2433 result = -1;
2434 else if(this && !string2)
2435 result = 1;
2436 return result;
2437 }
2438
2439 char * __ecereMethod___ecereNameSpace__ecere__com__StaticString_OnGetString(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__StaticString * this, char * tempString, void * fieldData, unsigned int * needClass)
2440 {
2441 return (char *)(this ? this->string : (((void *)0)));
2442 }
2443
2444 void __ecereMethod___ecereNameSpace__ecere__com__StaticString_OnFree(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__StaticString * this)
2445 {
2446 }
2447
2448 static void __ecereNameSpace__ecere__com__String_OnCopy(struct __ecereNameSpace__ecere__com__Class * _class, char ** data, char * newData)
2449 {
2450 if(newData)
2451 {
2452 int len = strlen(newData);
2453
2454 if(len)
2455 {
2456 *data = __ecereNameSpace__ecere__com__eSystem_New(len + 1);
2457 memcpy(*data, newData, len + 1);
2458 }
2459 else
2460 *data = (((void *)0));
2461 }
2462 else
2463 *data = (((void *)0));
2464 }
2465
2466 static unsigned int __ecereNameSpace__ecere__com__String_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * _class, char ** data, char * newData)
2467 {
2468 if(newData)
2469 {
2470 int len = strlen(newData);
2471
2472 if(len)
2473 {
2474 *data = __ecereNameSpace__ecere__com__eSystem_New(len + 1);
2475 memcpy(*data, newData, len + 1);
2476 }
2477 else
2478 *data = (((void *)0));
2479 }
2480 return 0x1;
2481 }
2482
2483 int __ecereNameSpace__ecere__com__String_OnCompare(struct __ecereNameSpace__ecere__com__Class * _class, char * string1, char * string2)
2484 {
2485 int result = 0;
2486
2487 if(string1 && string2)
2488 result = (strcasecmp)(string1, string2);
2489 else if(!string1 && string2)
2490 result = 1;
2491 else if(string1 && !string2)
2492 result = -1;
2493 return result;
2494 }
2495
2496 static char * __ecereNameSpace__ecere__com__String_OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, char * string, char * tempString, void * fieldData, unsigned int * needClass)
2497 {
2498 return string;
2499 }
2500
2501 static void __ecereNameSpace__ecere__com__String_OnFree(struct __ecereNameSpace__ecere__com__Class * _class, char * string)
2502 {
2503 if(string)
2504 {
2505 __ecereNameSpace__ecere__com__eSystem_Delete(string);
2506 }
2507 }
2508
2509 static void __ecereNameSpace__ecere__com__String_OnSerialize(struct __ecereNameSpace__ecere__com__Class * _class, char * string, struct __ecereNameSpace__ecere__com__Instance * channel)
2510 {
2511 int len = string ? strlen(string) : 0;
2512
2513 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, unsigned char *  data, unsigned int numBytes))channel->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_WriteData])(channel, string ? string : "", len + 1);
2514 }
2515
2516 extern unsigned int __ecereNameSpace__ecere__sys__UTF8Validate(char *  source);
2517
2518 extern int __ecereNameSpace__ecere__sys__ISO8859_1toUTF8(char *  source, char *  dest, int max);
2519
2520 static void __ecereNameSpace__ecere__com__String_OnUnserialize(struct __ecereNameSpace__ecere__com__Class * _class, char ** string, struct __ecereNameSpace__ecere__com__Instance * channel)
2521 {
2522 if(string)
2523 {
2524 int c;
2525 unsigned int size = 64;
2526
2527 *string = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (size));
2528 for(c = 0; ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, unsigned char *  data, unsigned int numBytes))channel->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_ReadData])(channel, &(*string)[c], 1) && (*string)[c]; c++)
2529 {
2530 if(c == size - 1)
2531 {
2532 size += size / 2;
2533 *string = __ecereNameSpace__ecere__com__eSystem_Renew(*string, sizeof(char) * (size));
2534 }
2535 }
2536 (*string)[c++] = '\0';
2537 if(!__ecereNameSpace__ecere__sys__UTF8Validate(*string))
2538 {
2539 char * newString = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (c * 2));
2540
2541 __ecereNameSpace__ecere__sys__ISO8859_1toUTF8(*string, newString, c * 2);
2542 (__ecereNameSpace__ecere__com__eSystem_Delete(*string), *string = 0);
2543 *string = __ecereNameSpace__ecere__com__eSystem_Renew(newString, sizeof(char) * (strlen(newString) + 1));
2544 }
2545 else
2546 *string = __ecereNameSpace__ecere__com__eSystem_Renew(*string, sizeof(char) * (c));
2547 }
2548 }
2549
2550 extern struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_AddProperty(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, char *  dataType, void *  setStmt, void *  getStmt, int declMode);
2551
2552 static void __ecereNameSpace__ecere__com__RegisterClass_String(struct __ecereNameSpace__ecere__com__Instance * module)
2553 {
2554 struct __ecereNameSpace__ecere__com__Class * stringClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "char *", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
2555
2556 (__ecereNameSpace__ecere__com__eSystem_Delete(stringClass->dataTypeString), stringClass->dataTypeString = 0);
2557 stringClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("char *");
2558 stringClass->structSize = 0;
2559 __ecereNameSpace__ecere__com__eClass_AddMethod(stringClass, "OnCompare", (((void *)0)), __ecereNameSpace__ecere__com__String_OnCompare, 1);
2560 __ecereNameSpace__ecere__com__eClass_AddMethod(stringClass, "OnCopy", (((void *)0)), __ecereNameSpace__ecere__com__String_OnCopy, 1);
2561 __ecereNameSpace__ecere__com__eClass_AddMethod(stringClass, "OnFree", (((void *)0)), __ecereNameSpace__ecere__com__String_OnFree, 1);
2562 __ecereNameSpace__ecere__com__eClass_AddMethod(stringClass, "OnGetString", (((void *)0)), __ecereNameSpace__ecere__com__String_OnGetString, 1);
2563 __ecereNameSpace__ecere__com__eClass_AddMethod(stringClass, "OnGetDataFromString", (((void *)0)), __ecereNameSpace__ecere__com__String_OnGetDataFromString, 1);
2564 __ecereNameSpace__ecere__com__eClass_AddMethod(stringClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__String_OnSerialize, 1);
2565 __ecereNameSpace__ecere__com__eClass_AddMethod(stringClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__String_OnUnserialize, 1);
2566 stringClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "String", "char *", 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
2567 stringClass->structSize = 0;
2568 __ecereNameSpace__ecere__com__eClass_AddProperty(stringClass, (((void *)0)), "char *", (((void *)0)), (((void *)0)), 1);
2569 }
2570
2571 extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, char *  type, void *  function, int declMode);
2572
2573 void __ecereNameSpace__ecere__com__InitializeDataTypes1(struct __ecereNameSpace__ecere__com__Instance * module)
2574 {
2575 struct __ecereNameSpace__ecere__com__Class * baseClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "class");
2576
2577 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(baseClass, "OnDisplay", "void typed_object::OnDisplay(Surface surface, int x, int y, int width, void * fieldData, Alignment alignment, DataDisplayFlags displayFlags)", (((void *)0)), 1);
2578 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(baseClass, "OnCompare", "int typed_object::OnCompare(any_object object)", __ecereNameSpace__ecere__com__OnCompare, 1);
2579 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(baseClass, "OnCopy", "void typed_object&::OnCopy(any_object newData)", __ecereNameSpace__ecere__com__OnCopy, 1);
2580 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(baseClass, "OnFree", "void typed_object::OnFree(void)", __ecereNameSpace__ecere__com__OnFree, 1);
2581 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(baseClass, "OnGetString", "char * typed_object::OnGetString(char * tempString, void * fieldData, bool * needClass)", __ecereNameSpace__ecere__com__OnGetString, 1);
2582 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(baseClass, "OnGetDataFromString", "bool typed_object&::OnGetDataFromString(char * string)", __ecereNameSpace__ecere__com__OnGetDataFromString, 1);
2583 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(baseClass, "OnEdit", "Window typed_object::OnEdit(DataBox dataBox, DataBox obsolete, int x, int y, int w, int h, void * userData)", (((void *)0)), 1);
2584 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(baseClass, "OnSerialize", "void typed_object::OnSerialize(IOChannel channel)", __ecereNameSpace__ecere__com__OnSerialize, 1);
2585 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(baseClass, "OnUnserialize", "void typed_object&::OnUnserialize(IOChannel channel)", __ecereNameSpace__ecere__com__OnUnserialize, 1);
2586 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(baseClass, "OnSaveEdit", "bool typed_object&::OnSaveEdit(Window window, void * object)", (((void *)0)), 1);
2587 }
2588
2589 void __ecereNameSpace__ecere__com__InitializeDataTypes(struct __ecereNameSpace__ecere__com__Instance * module)
2590 {
2591 struct __ecereNameSpace__ecere__com__Class * enumClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "enum");
2592
2593 __ecereNameSpace__ecere__com__eClass_AddMethod(enumClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Enum_OnSerialize, 1);
2594 __ecereNameSpace__ecere__com__eClass_AddMethod(enumClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Enum_OnUnserialize, 1);
2595 __ecereNameSpace__ecere__com__RegisterClass_Integer(module);
2596 __ecereNameSpace__ecere__com__RegisterClass_Float(module);
2597 __ecereNameSpace__ecere__com__RegisterClass_Double(module);
2598 __ecereNameSpace__ecere__com__RegisterClass_String(module);
2599 }
2600
2601 int __ecereNameSpace__ecere__com__PrintStdArgsToBuffer(char * buffer, int maxLen, struct __ecereNameSpace__ecere__com__Class * class, void * object, va_list args)
2602 {
2603 int len = 0;
2604 char * result = ((char *  (*)(struct __ecereNameSpace__ecere__com__Class *, void *, char *  tempString, void *  fieldData, unsigned int *  needClass))class->_vTbl[__ecereVMethodID_class_OnGetString])(class, object, buffer, (((void *)0)), (((void *)0)));
2605
2606 if(result)
2607 {
2608 len = strlen(result);
2609 if(len >= maxLen)
2610 len = maxLen - 1;
2611 if(result != buffer)
2612 memcpy(buffer, result, len);
2613 }
2614 while(0x1)
2615 {
2616 struct __ecereNameSpace__ecere__com__Class * _class = (((void *)0));
2617 void * data = (((void *)0));
2618
2619 _class = __builtin_va_arg(args, void *);
2620 if(!_class)
2621 break;
2622 data = __builtin_va_arg(args, void *);
2623 if(data)
2624 {
2625 result = ((char * (*)(void *, void *, char *, void *, unsigned int *))(void *)_class->_vTbl[__ecereVMethodID_class_OnGetString])(_class, data, buffer + len, (((void *)0)), (((void *)0)));
2626 if(result)
2627 {
2628 int newLen = strlen(result);
2629
2630 if(len + newLen >= maxLen)
2631 newLen = maxLen - 1 - len;
2632 if(result != buffer + len)
2633 memcpy(buffer + len, result, newLen);
2634 len += newLen;
2635 }
2636 }
2637 }
2638 buffer[len] = (char)0;
2639 return len;
2640 }
2641
2642 int __ecereNameSpace__ecere__com__PrintBuf(char * buffer, int maxLen, struct __ecereNameSpace__ecere__com__Class * class, void * object, ...)
2643 {
2644 va_list args;
2645 int len;
2646
2647 __builtin_va_start(args, object);
2648 len = __ecereNameSpace__ecere__com__PrintStdArgsToBuffer(buffer, maxLen, class, object, args);
2649 __builtin_va_end(args);
2650 return len;
2651 }
2652
2653 int __ecereNameSpace__ecere__com__PrintLnBuf(char * buffer, int maxLen, struct __ecereNameSpace__ecere__com__Class * class, void * object, ...)
2654 {
2655 va_list args;
2656 int len;
2657
2658 __builtin_va_start(args, object);
2659 len = __ecereNameSpace__ecere__com__PrintStdArgsToBuffer(buffer, maxLen - 1, class, object, args);
2660 buffer[len++] = '\n';
2661 buffer[len] = '\0';
2662 __builtin_va_end(args);
2663 return len;
2664 }
2665
2666 char * __ecereNameSpace__ecere__com__PrintString(struct __ecereNameSpace__ecere__com__Class * class, void * object, ...)
2667 {
2668 char buffer[4096];
2669 va_list args;
2670 char * string;
2671 int len;
2672
2673 __builtin_va_start(args, object);
2674 len = __ecereNameSpace__ecere__com__PrintStdArgsToBuffer(buffer, sizeof buffer, class, object, args);
2675 string = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (len + 1));
2676 memcpy(string, buffer, len + 1);
2677 __builtin_va_end(args);
2678 return string;
2679 }
2680
2681 char * __ecereNameSpace__ecere__com__PrintLnString(struct __ecereNameSpace__ecere__com__Class * class, void * object, ...)
2682 {
2683 char buffer[4096];
2684 va_list args;
2685 char * string;
2686 int len;
2687
2688 __builtin_va_start(args, object);
2689 len = __ecereNameSpace__ecere__com__PrintStdArgsToBuffer(buffer, sizeof buffer, class, object, args);
2690 string = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (len + 2));
2691 memcpy(string, buffer, len);
2692 string[len++] = '\n';
2693 string[len] = '\0';
2694 __builtin_va_end(args);
2695 return string;
2696 }
2697
2698 extern int puts(char * );
2699
2700 void __ecereNameSpace__ecere__com__PrintLn(struct __ecereNameSpace__ecere__com__Class * class, void * object, ...)
2701 {
2702 va_list args;
2703 char buffer[4096];
2704
2705 __builtin_va_start(args, object);
2706 __ecereNameSpace__ecere__com__PrintStdArgsToBuffer(buffer, sizeof buffer, class, object, args);
2707 __builtin_va_end(args);
2708 puts(buffer);
2709 }
2710
2711 extern int fputs(char * , void *  stream);
2712
2713 void __ecereNameSpace__ecere__com__Print(struct __ecereNameSpace__ecere__com__Class * class, void * object, ...)
2714 {
2715 va_list args;
2716 char buffer[4096];
2717
2718 __builtin_va_start(args, object);
2719 __ecereNameSpace__ecere__com__PrintStdArgsToBuffer(buffer, sizeof buffer, class, object, args);
2720 __builtin_va_end(args);
2721 fputs(buffer, eC_stdout());
2722 }
2723
2724 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DefinedExpression;
2725
2726 struct __ecereNameSpace__ecere__com__DefinedExpression;
2727
2728 extern struct __ecereNameSpace__ecere__com__DefinedExpression * __ecereNameSpace__ecere__com__eSystem_RegisterDefine(char *  name, char *  value, struct __ecereNameSpace__ecere__com__Instance * module, int declMode);
2729
2730 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
2731
2732 struct __ecereNameSpace__ecere__com__NameSpace
2733 {
2734 char *  name;
2735 struct __ecereNameSpace__ecere__com__NameSpace *  btParent;
2736 struct __ecereNameSpace__ecere__com__NameSpace *  left;
2737 struct __ecereNameSpace__ecere__com__NameSpace *  right;
2738 int depth;
2739 struct __ecereNameSpace__ecere__com__NameSpace *  parent;
2740 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
2741 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
2742 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
2743 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
2744 } __attribute__ ((gcc_struct));
2745
2746 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
2747
2748 struct __ecereNameSpace__ecere__com__Module
2749 {
2750 struct __ecereNameSpace__ecere__com__Instance * application;
2751 struct __ecereNameSpace__ecere__sys__OldList classes;
2752 struct __ecereNameSpace__ecere__sys__OldList defines;
2753 struct __ecereNameSpace__ecere__sys__OldList functions;
2754 struct __ecereNameSpace__ecere__sys__OldList modules;
2755 struct __ecereNameSpace__ecere__com__Instance * prev;
2756 struct __ecereNameSpace__ecere__com__Instance * next;
2757 char *  name;
2758 void *  library;
2759 void *  Unload;
2760 int importType;
2761 int origImportType;
2762 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
2763 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
2764 } __attribute__ ((gcc_struct));
2765
2766 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
2767
2768 extern struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eClass_AddDataMember(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, char *  type, unsigned int size, unsigned int alignment, int declMode);
2769
2770 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
2771
2772 struct __ecereNameSpace__ecere__com__GlobalFunction;
2773
2774 extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_RegisterFunction(char *  name, char *  type, void *  func, struct __ecereNameSpace__ecere__com__Instance * module, int declMode);
2775
2776 void __ecereRegisterModule_dataTypes(struct __ecereNameSpace__ecere__com__Instance * module)
2777 {
2778 struct __ecereNameSpace__ecere__com__Class * class;
2779
2780 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::MAXBYTE", "0xff", module, 4);
2781 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::MAXWORD", "0xffff", module, 4);
2782 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::MININT", "((int)0x80000000)", module, 4);
2783 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::MAXINT", "((int)0x7fffffff)", module, 4);
2784 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::MININT64", "((long long)0x8000000000000000LL)", module, 4);
2785 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::MAXINT64", "((long long)0x7fffffffffffffffLL)", module, 4);
2786 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::MAXDWORD", "0xffffffff", module, 4);
2787 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::MAXQWORD", "0xffffffffffffffffLL", module, 4);
2788 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::MINFLOAT", "((float)1.17549435082228750e-38)", module, 4);
2789 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::MAXFLOAT", "((float)3.40282346638528860e+38)", module, 4);
2790 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::MINDOUBLE", "((double)2.2250738585072014e-308)", module, 4);
2791 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::MAXDOUBLE", "((double)1.7976931348623158e+308)", module, 4);
2792 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::FORMAT64HEXLL", "(GetRuntimePlatform() == win32) ? \"0x%I64XLL\" : \"0x%llXLL\"", module, 4);
2793 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::FORMAT64HEX", "(GetRuntimePlatform() == win32) ? \"0x%I64X\" : \"0x%llX\"", module, 4);
2794 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::FORMAT64DLL", "(GetRuntimePlatform() == win32) ? \"%I64dLL\" : \"%lldLL\"", module, 4);
2795 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::FORMAT64D", "(GetRuntimePlatform() == win32) ? \"%I64d\" : \"%lld\"", module, 4);
2796 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::FORMAT64U", "(GetRuntimePlatform() == win32) ? \"%I64u\" : \"%llu\"", module, 4);
2797 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::IOChannel", 0, 0, 0, 0, 0, module, 4, 1);
2798 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
2799 __ecereClass___ecereNameSpace__ecere__com__IOChannel = class;
2800 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "WriteData", "uint WriteData(byte * data, unsigned int numBytes)", 0, 1);
2801 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "ReadData", "uint ReadData(byte * data, unsigned int numBytes)", 0, 1);
2802 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Get", "void Get(typed_object * data)", __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Get, 1);
2803 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Put", "void Put(typed_object data)", __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Put, 1);
2804 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Serialize", "void Serialize(typed_object data)", __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize, 1);
2805 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Unserialize", "void Unserialize(typed_object * data)", __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize, 1);
2806 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::SerialBuffer", "ecere::com::IOChannel", sizeof(struct __ecereNameSpace__ecere__com__SerialBuffer), 0, 0, __ecereDestructor___ecereNameSpace__ecere__com__SerialBuffer, module, 4, 1);
2807 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
2808 __ecereClass___ecereNameSpace__ecere__com__SerialBuffer = class;
2809 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "WriteData", 0, __ecereMethod___ecereNameSpace__ecere__com__SerialBuffer_WriteData, 1);
2810 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "ReadData", 0, __ecereMethod___ecereNameSpace__ecere__com__SerialBuffer_ReadData, 1);
2811 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Free", "void Free()", __ecereMethod___ecereNameSpace__ecere__com__SerialBuffer_Free, 1);
2812 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_buffer", "byte *", arch_PointerSize, arch_PointerSize, 1);
2813 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "count", "uint", 4, 4, 1);
2814 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_size", "uint", 4, 4, 1);
2815 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "pos", "uint", 4, 4, 1);
2816 __ecerePropM___ecereNameSpace__ecere__com__SerialBuffer_buffer = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "buffer", "byte *", __ecereProp___ecereNameSpace__ecere__com__SerialBuffer_Set_buffer, __ecereProp___ecereNameSpace__ecere__com__SerialBuffer_Get_buffer, 1);
2817 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
2818 __ecereProp___ecereNameSpace__ecere__com__SerialBuffer_buffer = __ecerePropM___ecereNameSpace__ecere__com__SerialBuffer_buffer, __ecerePropM___ecereNameSpace__ecere__com__SerialBuffer_buffer = (void *)0;
2819 __ecerePropM___ecereNameSpace__ecere__com__SerialBuffer_size = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "size", "uint", __ecereProp___ecereNameSpace__ecere__com__SerialBuffer_Set_size, __ecereProp___ecereNameSpace__ecere__com__SerialBuffer_Get_size, 1);
2820 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
2821 __ecereProp___ecereNameSpace__ecere__com__SerialBuffer_size = __ecerePropM___ecereNameSpace__ecere__com__SerialBuffer_size, __ecerePropM___ecereNameSpace__ecere__com__SerialBuffer_size = (void *)0;
2822 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::Enum_OnGetString", "char * ecere::com::Enum_OnGetString(ecere::com::Class _class, int * data, char * tempString, void * fieldData, bool * needClass)", __ecereNameSpace__ecere__com__Enum_OnGetString, module, 4);
2823 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::Integer_OnGetString", "char * ecere::com::Integer_OnGetString(ecere::com::Class _class, int * data, char * string, void * fieldData, bool * needClass)", __ecereNameSpace__ecere__com__Integer_OnGetString, module, 4);
2824 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::Byte_OnSerialize", "void ecere::com::Byte_OnSerialize(ecere::com::Class _class, byte * data, ecere::com::IOChannel channel)", __ecereNameSpace__ecere__com__Byte_OnSerialize, module, 4);
2825 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::Byte_OnUnserialize", "void ecere::com::Byte_OnUnserialize(ecere::com::Class _class, byte * data, ecere::com::IOChannel channel)", __ecereNameSpace__ecere__com__Byte_OnUnserialize, module, 4);
2826 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::Int_OnSerialize", "void ecere::com::Int_OnSerialize(ecere::com::Class _class, int * data, ecere::com::IOChannel channel)", __ecereNameSpace__ecere__com__Int_OnSerialize, module, 4);
2827 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::Int_OnUnserialize", "void ecere::com::Int_OnUnserialize(ecere::com::Class _class, int * data, ecere::com::IOChannel channel)", __ecereNameSpace__ecere__com__Int_OnUnserialize, module, 4);
2828 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::Enum_OnSerialize", "void ecere::com::Enum_OnSerialize(ecere::com::Class _class, int * data, ecere::com::IOChannel channel)", __ecereNameSpace__ecere__com__Enum_OnSerialize, module, 4);
2829 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::Enum_OnUnserialize", "void ecere::com::Enum_OnUnserialize(ecere::com::Class _class, int * data, ecere::com::IOChannel channel)", __ecereNameSpace__ecere__com__Enum_OnUnserialize, module, 4);
2830 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::Int64_OnSerialize", "void ecere::com::Int64_OnSerialize(ecere::com::Class _class, int64 * data, ecere::com::IOChannel channel)", __ecereNameSpace__ecere__com__Int64_OnSerialize, module, 4);
2831 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::Int64_OnUnserialize", "void ecere::com::Int64_OnUnserialize(ecere::com::Class _class, int64 * data, ecere::com::IOChannel channel)", __ecereNameSpace__ecere__com__Int64_OnUnserialize, module, 4);
2832 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::Word_OnSerialize", "void ecere::com::Word_OnSerialize(ecere::com::Class _class, uint16 * data, ecere::com::IOChannel channel)", __ecereNameSpace__ecere__com__Word_OnSerialize, module, 4);
2833 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::Word_OnUnserialize", "void ecere::com::Word_OnUnserialize(ecere::com::Class _class, uint16 * data, ecere::com::IOChannel channel)", __ecereNameSpace__ecere__com__Word_OnUnserialize, module, 4);
2834 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::StaticString", 0, sizeof(struct __ecereNameSpace__ecere__com__StaticString), 0, 0, 0, module, 4, 1);
2835 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
2836 __ecereClass___ecereNameSpace__ecere__com__StaticString = class;
2837 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnCompare", 0, __ecereMethod___ecereNameSpace__ecere__com__StaticString_OnCompare, 1);
2838 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnFree", 0, __ecereMethod___ecereNameSpace__ecere__com__StaticString_OnFree, 1);
2839 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__com__StaticString_OnGetString, 1);
2840 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnSerialize", 0, __ecereMethod___ecereNameSpace__ecere__com__StaticString_OnSerialize, 1);
2841 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnUnserialize", 0, __ecereMethod___ecereNameSpace__ecere__com__StaticString_OnUnserialize, 1);
2842 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "string", "char[1]", 1, 1, 1);
2843 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::String_OnCompare", "int ecere::com::String_OnCompare(ecere::com::Class _class, char * string1, char * string2)", __ecereNameSpace__ecere__com__String_OnCompare, module, 4);
2844 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::InitializeDataTypes1", "void ecere::com::InitializeDataTypes1(ecere::com::Module module)", __ecereNameSpace__ecere__com__InitializeDataTypes1, module, 4);
2845 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::InitializeDataTypes", "void ecere::com::InitializeDataTypes(ecere::com::Module module)", __ecereNameSpace__ecere__com__InitializeDataTypes, module, 4);
2846 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::PrintStdArgsToBuffer", "int ecere::com::PrintStdArgsToBuffer(char * buffer, int maxLen, typed_object object, __builtin_va_list args)", __ecereNameSpace__ecere__com__PrintStdArgsToBuffer, module, 4);
2847 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::PrintBuf", "int ecere::com::PrintBuf(char * buffer, int maxLen, typed_object object, ...)", __ecereNameSpace__ecere__com__PrintBuf, module, 4);
2848 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::PrintLnBuf", "int ecere::com::PrintLnBuf(char * buffer, int maxLen, typed_object object, ...)", __ecereNameSpace__ecere__com__PrintLnBuf, module, 4);
2849 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::PrintString", "char * ecere::com::PrintString(typed_object object, ...)", __ecereNameSpace__ecere__com__PrintString, module, 4);
2850 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::PrintLnString", "char * ecere::com::PrintLnString(typed_object object, ...)", __ecereNameSpace__ecere__com__PrintLnString, module, 4);
2851 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::PrintLn", "void ecere::com::PrintLn(typed_object object, ...)", __ecereNameSpace__ecere__com__PrintLn, module, 4);
2852 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::Print", "void ecere::com::Print(typed_object object, ...)", __ecereNameSpace__ecere__com__Print, module, 4);
2853 }
2854
2855 void __ecereUnregisterModule_dataTypes(struct __ecereNameSpace__ecere__com__Instance * module)
2856 {
2857
2858 __ecerePropM___ecereNameSpace__ecere__com__SerialBuffer_buffer = (void *)0;
2859 __ecerePropM___ecereNameSpace__ecere__com__SerialBuffer_size = (void *)0;
2860 }
2861