2 typedef long long int64;
3 typedef unsigned long long uint64;
4 #elif defined(__TINYC__)
6 #define __builtin_va_list va_list
7 #define __builtin_va_start va_start
8 #define __builtin_va_end va_end
10 #define strcasecmp stricmp
11 #define strncasecmp strnicmp
12 #define __declspec(x) __attribute__((x))
14 typedef long long int64;
15 typedef unsigned long long uint64;
17 typedef __int64 int64;
18 typedef unsigned __int64 uint64;
21 #define __ENDIAN_PAD(x) (8 - (x))
23 #define __ENDIAN_PAD(x) 0
25 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
27 struct __ecereNameSpace__ecere__sys__BTNode;
29 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
31 struct __ecereNameSpace__ecere__sys__BinaryTree
33 struct __ecereNameSpace__ecere__sys__BTNode * root;
35 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, unsigned int a, unsigned int b);
36 void (* FreeKey)(void * key);
39 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
41 struct __ecereNameSpace__ecere__sys__OldList
50 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
52 struct __ecereNameSpace__ecere__com__Class
54 struct __ecereNameSpace__ecere__com__Class * prev;
55 struct __ecereNameSpace__ecere__com__Class * next;
61 int (* Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
62 void (* Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
65 struct __ecereNameSpace__ecere__com__Class * base;
66 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
67 struct __ecereNameSpace__ecere__sys__BinaryTree members;
68 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
69 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
70 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
71 struct __ecereNameSpace__ecere__sys__OldList derivatives;
75 struct __ecereNameSpace__ecere__com__Instance * module;
76 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
77 char * dataTypeString;
78 struct __ecereNameSpace__ecere__com__Instance * dataType;
81 void (* Initialize)();
83 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
85 unsigned int noExpansion;
86 char * defaultProperty;
87 unsigned int comRedefinition;
89 unsigned int isRemote;
90 unsigned int internalDecl;
92 unsigned int computeSize;
94 int destructionWatchOffset;
96 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
97 int inheritanceAccess;
100 struct __ecereNameSpace__ecere__sys__OldList conversions;
101 struct __ecereNameSpace__ecere__sys__OldList templateParams;
102 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
103 struct __ecereNameSpace__ecere__com__Class * templateClass;
104 struct __ecereNameSpace__ecere__sys__OldList templatized;
108 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
110 struct __ecereNameSpace__ecere__com__Instance
113 struct __ecereNameSpace__ecere__com__Class * _class;
117 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
119 struct __ecereNameSpace__ecere__com__Property
121 struct __ecereNameSpace__ecere__com__Property * prev;
122 struct __ecereNameSpace__ecere__com__Property * next;
124 unsigned int isProperty;
127 struct __ecereNameSpace__ecere__com__Class * _class;
128 char * dataTypeString;
129 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
130 struct __ecereNameSpace__ecere__com__Instance * dataType;
133 unsigned int (* IsSet)();
137 unsigned int conversion;
138 unsigned int watcherOffset;
140 unsigned int compiled;
141 unsigned int selfWatchable;
142 unsigned int isWatchable;
145 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
147 struct __ecereNameSpace__ecere__com__DataMember
149 struct __ecereNameSpace__ecere__com__DataMember * prev;
150 struct __ecereNameSpace__ecere__com__DataMember * next;
152 unsigned int isProperty;
155 struct __ecereNameSpace__ecere__com__Class * _class;
156 char * dataTypeString;
157 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
158 struct __ecereNameSpace__ecere__com__Instance * dataType;
162 struct __ecereNameSpace__ecere__sys__OldList members;
163 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
168 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
170 struct __ecereNameSpace__ecere__com__Method
173 struct __ecereNameSpace__ecere__com__Method * parent;
174 struct __ecereNameSpace__ecere__com__Method * left;
175 struct __ecereNameSpace__ecere__com__Method * right;
180 struct __ecereNameSpace__ecere__com__Class * _class;
182 char * dataTypeString;
183 struct __ecereNameSpace__ecere__com__Instance * dataType;
187 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
189 struct __ecereNameSpace__ecere__com__DataValue
207 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
209 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
215 char * dataTypeString;
216 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
218 struct __ecereNameSpace__ecere__com__DataValue expression;
224 struct __ecereNameSpace__ecere__com__DataMember * member;
225 struct __ecereNameSpace__ecere__com__Property * prop;
226 struct __ecereNameSpace__ecere__com__Method * method;
232 extern int runtimePlatform;
251 int __ecereVMethodID_class_OnGetString;
253 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_int;
255 int __ecereVMethodID_class_OnFree;
257 int __ecereVMethodID_class_OnCopy;
259 int __ecereVMethodID_class_OnCompare;
261 int __ecereVMethodID_class_OnSaveEdit;
263 int __ecereVMethodID_class_OnEdit;
265 int __ecereVMethodID_class_OnDisplay;
267 int __ecereVMethodID_class_OnGetDataFromString;
269 static void __ecereNameSpace__ecere__com__UnusedFunction()
273 ((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);
274 ((void (*)(struct __ecereNameSpace__ecere__com__Class *, void *))__ecereClass_int->_vTbl[__ecereVMethodID_class_OnFree])(__ecereClass_int, &a);
275 ((void (*)(struct __ecereNameSpace__ecere__com__Class *, void *, void * newData))__ecereClass_int->_vTbl[__ecereVMethodID_class_OnCopy])(__ecereClass_int, &a, (((void *)0)));
276 ((int (*)(struct __ecereNameSpace__ecere__com__Class *, void *, void * object))__ecereClass_int->_vTbl[__ecereVMethodID_class_OnCompare])(__ecereClass_int, &a, (((void *)0)));
277 ((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);
278 ((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, 0, 0);
279 ((void (*)(struct __ecereNameSpace__ecere__com__Class *, void *, struct __ecereNameSpace__ecere__com__Instance * surface, int x, int y, int width, void * fieldData, struct __ecereNameSpace__ecere__com__Instance * alignment, struct __ecereNameSpace__ecere__com__Instance * displayFlags))__ecereClass_int->_vTbl[__ecereVMethodID_class_OnDisplay])(__ecereClass_int, &a, (((void *)0)), 0, 0, 0, 0, (((void *)0)), (((void *)0)));
280 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Class *, void *, char * string))__ecereClass_int->_vTbl[__ecereVMethodID_class_OnGetDataFromString])(__ecereClass_int, &a, (((void *)0)));
283 extern int __ecereVMethodID_class_OnGetString;
285 extern int __ecereVMethodID_class_OnGetDataFromString;
287 extern int __ecereVMethodID_class_OnCompare;
289 extern int __ecereVMethodID_class_OnSerialize;
291 extern int __ecereVMethodID_class_OnUnserialize;
293 extern int __ecereVMethodID_class_OnCopy;
295 void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory);
297 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__IOChannel;
299 int __ecereVMethodID_class_OnSerialize;
301 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * data)
303 ((void (*)(struct __ecereNameSpace__ecere__com__Class *, void *, struct __ecereNameSpace__ecere__com__Instance * channel))class->_vTbl[__ecereVMethodID_class_OnSerialize])(class, data, this);
306 int __ecereVMethodID_class_OnUnserialize;
308 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * * data)
310 ((void (*)(struct __ecereNameSpace__ecere__com__Class *, void *, struct __ecereNameSpace__ecere__com__Instance * channel))class->_vTbl[__ecereVMethodID_class_OnUnserialize])(class, data, this);
313 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Put(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * data)
315 ((void (*)(struct __ecereNameSpace__ecere__com__Class *, void *, struct __ecereNameSpace__ecere__com__Instance * channel))class->_vTbl[__ecereVMethodID_class_OnSerialize])(class, data, this);
318 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Get(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * * data)
320 ((void (*)(struct __ecereNameSpace__ecere__com__Class *, void *, struct __ecereNameSpace__ecere__com__Instance * channel))class->_vTbl[__ecereVMethodID_class_OnUnserialize])(class, data, this);
323 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__SerialBuffer_buffer, * __ecerePropM___ecereNameSpace__ecere__com__SerialBuffer_buffer;
325 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__SerialBuffer_size, * __ecerePropM___ecereNameSpace__ecere__com__SerialBuffer_size;
327 struct __ecereNameSpace__ecere__com__SerialBuffer
329 unsigned char * _buffer;
335 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
337 void __ecereMethod___ecereNameSpace__ecere__com__SerialBuffer_Free();
339 void __ecereDestructor___ecereNameSpace__ecere__com__SerialBuffer(struct __ecereNameSpace__ecere__com__Instance * this)
341 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);
344 __ecereMethod___ecereNameSpace__ecere__com__SerialBuffer_Free(this);
348 extern void * memcpy(void * , const void * , unsigned int size);
350 unsigned int __ecereMethod___ecereNameSpace__ecere__com__SerialBuffer_WriteData(struct __ecereNameSpace__ecere__com__Instance * this, unsigned char * bytes, unsigned int numBytes)
352 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);
354 if(this != (((void *)0)))
356 if(__ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->count + numBytes > __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->_size)
358 __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->_size = __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->count + numBytes;
359 __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->_size += __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->_size / 2;
360 __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));
362 memcpy(__ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->_buffer + __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->count, bytes, numBytes);
363 __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->count += numBytes;
369 unsigned int __ecereMethod___ecereNameSpace__ecere__com__SerialBuffer_ReadData(struct __ecereNameSpace__ecere__com__Instance * this, unsigned char * bytes, unsigned int numBytes)
371 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);
373 if(this != (((void *)0)))
375 unsigned int __simpleStruct0;
376 int read = (__simpleStruct0 = __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->count - __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->pos, (numBytes < __simpleStruct0) ? numBytes : __simpleStruct0);
378 memcpy(bytes, __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->_buffer + __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->pos, read);
379 __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->pos += read;
385 void __ecereMethod___ecereNameSpace__ecere__com__SerialBuffer_Free(struct __ecereNameSpace__ecere__com__Instance * this)
387 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);
391 (__ecereNameSpace__ecere__com__eSystem_Delete(__ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->_buffer), __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->_buffer = 0);
392 __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->count = 0;
393 __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->_size = 0;
394 __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->pos = 0;
398 unsigned char * __ecereProp___ecereNameSpace__ecere__com__SerialBuffer_Get_buffer(struct __ecereNameSpace__ecere__com__Instance * this)
400 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);
402 return __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->_buffer + __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->pos;
405 void __ecereProp___ecereNameSpace__ecere__com__SerialBuffer_Set_buffer(struct __ecereNameSpace__ecere__com__Instance * this, unsigned char * value)
407 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);
409 __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->_buffer = value;
410 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__SerialBuffer_buffer), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__SerialBuffer_buffer);
413 unsigned int __ecereProp___ecereNameSpace__ecere__com__SerialBuffer_Get_size(struct __ecereNameSpace__ecere__com__Instance * this)
415 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);
417 return __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->count - __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->pos;
420 void __ecereProp___ecereNameSpace__ecere__com__SerialBuffer_Set_size(struct __ecereNameSpace__ecere__com__Instance * this, unsigned int value)
422 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);
424 __ecerePointer___ecereNameSpace__ecere__com__SerialBuffer->count = value;
425 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__SerialBuffer_size), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__SerialBuffer_size);
428 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__EnumClassData;
430 struct __ecereNameSpace__ecere__com__EnumClassData
432 struct __ecereNameSpace__ecere__sys__OldList values;
436 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__NamedLink;
438 struct __ecereNameSpace__ecere__sys__NamedLink
440 struct __ecereNameSpace__ecere__sys__NamedLink * prev;
441 struct __ecereNameSpace__ecere__sys__NamedLink * next;
446 extern char * strcpy(char * , const char * );
448 extern int toupper(int);
450 char * __ecereNameSpace__ecere__com__Enum_OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, int * data, char * tempString, void * fieldData, unsigned int * needClass)
452 struct __ecereNameSpace__ecere__com__EnumClassData * enumeration = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
453 struct __ecereNameSpace__ecere__sys__NamedLink * item;
455 for(item = enumeration->values.first; item; item = item->next)
456 if((int)item->data == *data)
460 strcpy(tempString, item->name);
461 if(!needClass || !*needClass)
462 tempString[0] = (char)toupper(tempString[0]);
466 return (((void *)0));
469 extern int strcasecmp(const char * , const char * );
471 static unsigned int __ecereNameSpace__ecere__com__Integer_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * _class, int * data, char * string);
473 static unsigned int __ecereNameSpace__ecere__com__Enum_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * _class, int * data, char * string)
475 struct __ecereNameSpace__ecere__com__EnumClassData * enumeration = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
476 struct __ecereNameSpace__ecere__sys__NamedLink * item;
478 for(item = enumeration->values.first; item; item = item->next)
480 if(item->name && !(strcasecmp)(item->name, string))
485 *data = (int)item->data;
489 return __ecereNameSpace__ecere__com__Integer_OnGetDataFromString(_class, data, string);
493 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
495 static void __ecereNameSpace__ecere__com__OnFree(struct __ecereNameSpace__ecere__com__Class * _class, void * data)
497 if(_class->templateClass)
498 _class = _class->templateClass;
499 if(_class->type == 0)
501 __ecereNameSpace__ecere__com__eInstance_DecRef(data);
503 else if(_class->type == 5 && data)
505 while(_class && _class->type == 5)
507 if(_class->Destructor)
508 _class->Destructor(data);
509 _class = _class->base;
511 (__ecereNameSpace__ecere__com__eSystem_Delete(data), data = 0);
515 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_FindClass(struct __ecereNameSpace__ecere__com__Instance * module, char * name);
517 static int __ecereNameSpace__ecere__com__DataMember_OnCompare(struct __ecereNameSpace__ecere__com__DataMember * parentMember, void * data1, void * data2)
519 struct __ecereNameSpace__ecere__com__DataMember * member;
520 struct __ecereNameSpace__ecere__com__Instance * module = parentMember->_class->module;
522 for(member = parentMember->members.first; member; member = member->next)
524 int memberResult = 0;
526 if(member->type == 0)
528 struct __ecereNameSpace__ecere__com__Class * memberType = member->dataTypeClass;
531 memberType = member->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, member->dataTypeString);
533 memberType = member->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "int");
534 if(memberType->type == 1 || memberType->type == 0 || memberType->type == 5)
536 memberResult = memberType->_vTbl[__ecereVMethodID_class_OnCompare](memberType, (unsigned char *)data1 + member->offset, (unsigned char *)data2 + member->offset);
542 struct __ecereNameSpace__ecere__com__DataValue value1, value2;
544 value1.i = *(int *)((unsigned char *)data1 + member->offset);
545 value2.i = *(int *)((unsigned char *)data2 + member->offset);
546 memberResult = memberType->_vTbl[__ecereVMethodID_class_OnCompare](memberType, &value1, &value2);
553 memberResult = __ecereNameSpace__ecere__com__DataMember_OnCompare(member, (unsigned char *)data1 + member->offset, (unsigned char *)data2 + member->offset);
561 extern int strcmp(const char * , const char * );
563 static int __ecereNameSpace__ecere__com__OnCompare(struct __ecereNameSpace__ecere__com__Class * _class, void * data1, void * data2)
565 struct __ecereNameSpace__ecere__com__Instance * module = _class->module;
567 if(_class->type == 0 || _class->type == 5 || _class->type == 1)
571 for(; _class && _class->type != 1000; _class = _class->base)
573 struct __ecereNameSpace__ecere__com__DataMember * member;
575 if(_class->noExpansion)
579 else if(data1 < data2)
584 for(member = _class->membersAndProperties.first; member; member = member->next)
586 int memberResult = 0;
588 if(member->isProperty || member->type == 0)
590 struct __ecereNameSpace__ecere__com__Class * memberType = member->dataTypeClass;
593 memberType = member->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, member->dataTypeString);
596 if(member->isProperty)
598 struct __ecereNameSpace__ecere__com__Property * prop = (struct __ecereNameSpace__ecere__com__Property *)member;
600 if(!prop->conversion && prop->Get && prop->Set)
602 if(memberType->type == 1 || memberType->type == 0 || memberType->type == 5)
604 if(!strcmp(memberType->dataTypeString, "char *"))
606 char * a = ((char * (*)())(void *)prop->Get)(data1);
607 char * b = ((char * (*)())(void *)prop->Get)(data2);
609 memberResult = memberType->_vTbl[__ecereVMethodID_class_OnCompare](memberType, a, b);
614 struct __ecereNameSpace__ecere__com__DataValue value1, value2;
616 if(!strcmp(memberType->dataTypeString, "float"))
618 value1.f = ((float (*)())(void *)prop->Get)(data1);
619 value2.f = ((float (*)())(void *)prop->Get)(data2);
623 value1.i = prop->Get(data1);
624 value2.i = prop->Get(data2);
626 memberResult = memberType->_vTbl[__ecereVMethodID_class_OnCompare](memberType, &value1, &value2);
632 if(memberType->type == 1 || memberType->type == 0 || memberType->type == 5)
634 if(memberType->type == 0 || memberType->type == 5)
636 memberResult = 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)));
640 memberResult = 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));
645 struct __ecereNameSpace__ecere__com__DataValue value1, value2;
647 if(memberType->typeSize == 8)
649 value1.ui64 = *(uint64 *)((unsigned char *)data1 + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset));
650 value2.ui64 = *(uint64 *)((unsigned char *)data2 + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset));
654 value1.i = *(int *)((unsigned char *)data1 + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset));
655 value2.i = *(int *)((unsigned char *)data2 + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset));
657 memberResult = memberType->_vTbl[__ecereVMethodID_class_OnCompare](memberType, &value1, &value2);
667 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));
674 else if(!data1 && data2)
676 else if(data1 && !data2)
679 else if(_class->type == 3)
681 struct __ecereNameSpace__ecere__com__Class * dataType = __ecereNameSpace__ecere__com__eSystem_FindClass(module, _class->dataTypeString);
683 return dataType->_vTbl[__ecereVMethodID_class_OnCompare](dataType, data1, data2);
691 if(*(void **)data1 > *(void **)data2)
693 else if(*(void **)data1 < *(void **)data2)
696 else if(!data1 && data2)
698 else if(data1 && !data2)
705 extern char * strchr(char * , int);
707 extern char * strcat(char * , const char * );
709 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BitMember;
711 struct __ecereNameSpace__ecere__com__BitMember
713 struct __ecereNameSpace__ecere__com__BitMember * prev;
714 struct __ecereNameSpace__ecere__com__BitMember * next;
716 unsigned int isProperty;
719 struct __ecereNameSpace__ecere__com__Class * _class;
720 char * dataTypeString;
721 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
722 struct __ecereNameSpace__ecere__com__Instance * dataType;
729 extern int strlen(const char * );
731 static char * __ecereNameSpace__ecere__com__OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, void * data, char * tempString, void * fieldData, unsigned int * needClass)
733 struct __ecereNameSpace__ecere__com__Instance * module = _class->templateClass ? _class->templateClass->module : _class->module;
735 if(_class->type == 4)
737 return __ecereNameSpace__ecere__com__Enum_OnGetString(_class, data, tempString, fieldData, needClass);
739 else if(_class->type == 3)
741 struct __ecereNameSpace__ecere__com__Class * dataType = __ecereNameSpace__ecere__com__eSystem_FindClass(module, _class->dataTypeString);
743 return (char *)dataType->_vTbl[__ecereVMethodID_class_OnGetString](dataType, data, tempString, fieldData, needClass);
747 unsigned int atMember = 0x1;
748 unsigned int prev = 0x0;
749 struct __ecereNameSpace__ecere__com__Class * mainClass = _class;
751 _class = (((void *)0));
752 tempString[0] = '\0';
753 if(!data && (mainClass->type == 0 || mainClass->type == 5))
755 while(_class != mainClass)
757 struct __ecereNameSpace__ecere__com__DataMember * member;
758 struct __ecereNameSpace__ecere__com__Class * lastClass = _class;
760 for(_class = mainClass; _class->base != lastClass && _class->base->type != 1000; _class = _class->base)
762 for(member = _class->membersAndProperties.first; member; member = member->next)
764 char memberString[1024];
765 struct __ecereNameSpace__ecere__com__Class * memberType = member->dataTypeClass;
766 char * name = member->name;
768 memberString[0] = (char)0;
770 memberType = member->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, member->dataTypeString);
772 memberType = member->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "int");
773 if(member->isProperty)
775 struct __ecereNameSpace__ecere__com__Property * prop = (struct __ecereNameSpace__ecere__com__Property *)member;
777 if(!prop->conversion && prop->Get && prop->Set && (!prop->IsSet || prop->IsSet(data)))
779 if(memberType->type != 1 && (memberType->type != 0 || !strcmp(memberType->dataTypeString, "char *")) && memberType->type != 2 && data)
781 struct __ecereNameSpace__ecere__com__DataValue value =
786 if(!strcmp(prop->dataTypeString, "float"))
788 value.f = ((float (*)())(void *)prop->Get)(data);
791 unsigned int needClass = 0x1;
792 char * result = (char *)memberType->_vTbl[__ecereVMethodID_class_OnGetString](memberType, &value, memberString, (((void *)0)), &needClass);
794 if(result && result != memberString)
795 strcpy(memberString, result);
796 if(strchr(memberString, '.'))
797 strcat(memberString, "f");
802 value.i = prop->Get(data);
803 if(value.i || prop->IsSet)
805 unsigned int needClass = 0x1;
806 char * result = (char *)memberType->_vTbl[__ecereVMethodID_class_OnGetString](memberType, (memberType->type == 0) ? value.p : &value, memberString, (((void *)0)), &needClass);
808 if(result && result != memberString)
809 strcpy(memberString, result);
817 if(member->type == 0)
819 if(memberType->type == 1 || memberType->type == 0)
821 char internalMemberString[1024];
822 unsigned char * memberData = ((unsigned char *)data + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset));
825 for(c = 0; c < memberType->structSize; c++)
828 if(c < memberType->structSize)
830 unsigned int needClass = 0x1;
833 if(memberType->type == 0)
834 result = (char *)memberType->_vTbl[__ecereVMethodID_class_OnGetString](memberType, *(struct __ecereNameSpace__ecere__com__Instance **)memberData, internalMemberString, (((void *)0)), &needClass);
836 result = (char *)memberType->_vTbl[__ecereVMethodID_class_OnGetString](memberType, memberData, internalMemberString, (((void *)0)), &needClass);
839 strcat(memberString, "{ ");
841 strcat(memberString, result);
842 strcat(memberString, " }");
845 strcpy(memberString, result);
850 struct __ecereNameSpace__ecere__com__DataValue value =
855 if(_class->type == 2)
857 struct __ecereNameSpace__ecere__com__BitMember * bitMember = (struct __ecereNameSpace__ecere__com__BitMember *)member;
859 value.ui64 = ((*(unsigned int *)data & bitMember->mask) >> bitMember->pos);
862 unsigned int needClass = 0x1;
863 char internalMemberString[1024];
864 char * result = (char *)memberType->_vTbl[__ecereVMethodID_class_OnGetString](memberType, &value, internalMemberString, (((void *)0)), &needClass);
866 if(needClass && memberType->type != 1000 && memberType->type != 4 && memberType->type != 3)
868 strcat(memberString, " { ");
870 strcat(memberString, result);
871 strcat(memberString, " }");
874 strcpy(memberString, result);
877 else if(!memberType->noExpansion)
879 if(memberType->typeSize <= 4)
881 value.i = *(int *)((unsigned char *)data + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset));
884 unsigned int needClass = 0x1;
885 char * result = (char *)memberType->_vTbl[__ecereVMethodID_class_OnGetString](memberType, &value, memberString, (((void *)0)), &needClass);
887 if(result && memberString != result)
888 strcpy(memberString, result);
893 unsigned int needClass = 0x1;
894 char * result = (char *)memberType->_vTbl[__ecereVMethodID_class_OnGetString](memberType, ((unsigned char *)data + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset)), memberString, (((void *)0)), &needClass);
896 if(result && memberString != result)
897 strcpy(memberString, result);
906 strcat(tempString, ", ");
907 if(!atMember || !strcmp(memberType->name, "bool"))
909 strcat(tempString, name);
910 strcat(tempString, " = ");
912 if(!strcmp(memberType->name, "char *"))
914 int len = strlen(tempString);
917 strcat(tempString, "\"");
919 for(c = 0; memberString[c]; c++)
921 if(memberString[c] == '\"')
923 strcat(tempString, "\\\"");
926 else if(memberString[c] == '\\')
928 strcat(tempString, "\\\\");
933 tempString[len++] = memberString[c];
934 tempString[len] = (char)0;
937 strcat(tempString, "\"");
940 strcat(tempString, memberString);
944 else if(member && (!member->isProperty || !((struct __ecereNameSpace__ecere__com__Property *)member)->conversion))
952 extern void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
954 extern void memset(void * area, unsigned char value, unsigned int count);
956 extern char * __ecereNameSpace__ecere__sys__TrimRSpaces(char * string, char * output);
958 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);
960 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);
962 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);
964 static unsigned int __ecereNameSpace__ecere__com__OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * _class, void ** data, char * string)
967 struct __ecereNameSpace__ecere__com__Instance * module = _class->module;
969 if(_class->type == 4)
970 result = __ecereNameSpace__ecere__com__Enum_OnGetDataFromString(_class, (int *)data, string);
971 else if(_class->type == 3)
973 struct __ecereNameSpace__ecere__com__Class * dataType = __ecereNameSpace__ecere__com__eSystem_FindClass(module, _class->dataTypeString);
975 return (unsigned int)dataType->_vTbl[__ecereVMethodID_class_OnGetDataFromString](dataType, data, string);
977 else if(!string[0] && _class->type == 0)
979 *data = (((void *)0));
985 char memberName[1024];
986 char memberString[10240];
988 unsigned int quoted = 0x0;
991 unsigned int escape = 0x0;
992 unsigned int gotChar;
993 unsigned int memberOffset;
994 struct __ecereNameSpace__ecere__com__Class * curClass = (((void *)0));
995 struct __ecereNameSpace__ecere__com__DataMember * curMember = (((void *)0));
996 struct __ecereNameSpace__ecere__com__DataMember * subMemberStack[256];
997 int subMemberStackPos = 0;
1000 if(_class->type == 5 || _class->type == 0)
1002 data = *data = __ecereNameSpace__ecere__com__eInstance_New(_class);
1003 if(_class->type == 0)
1004 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)((struct __ecereNameSpace__ecere__com__Instance *)data))->_refCount++;
1006 else if(_class->type == 1)
1007 memset(data, (unsigned char)0, _class->structSize);
1008 memberName[0] = '\0';
1009 for(c = 0; string[c] && count < sizeof memberString; )
1011 unsigned int found = 0x0;
1012 struct __ecereNameSpace__ecere__com__DataMember * thisMember = (((void *)0));
1016 for(; (ch = string[c]) && count < sizeof memberString; c++)
1018 if(ch == '\"' && !escape)
1024 if(!escape && ch == '\\')
1030 memberString[count++] = ch;
1037 memberString[count++] = ch;
1043 memberString[count++] = ch;
1053 if(gotChar && !brackets)
1060 memberString[count++] = ch;
1071 memberString[count++] = ch;
1078 memberString[count++] = ch;
1082 memberString[count] = '\0';
1083 __ecereNameSpace__ecere__sys__TrimRSpaces(memberString, memberName);
1090 memberString[count++] = ch;
1094 memberString[count] = '\0';
1095 __ecereNameSpace__ecere__sys__TrimRSpaces(memberString, memberString);
1098 struct __ecereNameSpace__ecere__com__DataMember * _subMemberStack[256];
1099 int _subMemberStackPos = 0;
1101 thisMember = __ecereNameSpace__ecere__com__eClass_FindDataMemberAndOffset(_class, memberName, &memberOffset, _class->module, _subMemberStack, &_subMemberStackPos);
1103 thisMember = (struct __ecereNameSpace__ecere__com__DataMember *)__ecereNameSpace__ecere__com__eClass_FindProperty(_class, memberName, _class->module);
1106 if(thisMember->memberAccess == 1)
1108 curMember = thisMember;
1109 curClass = thisMember->_class;
1110 memcpy(subMemberStack, _subMemberStack, sizeof(int) * _subMemberStackPos);
1111 subMemberStackPos = _subMemberStackPos;
1118 __ecereNameSpace__ecere__com__eClass_FindNextMember(_class, &curClass, &curMember, subMemberStack, &subMemberStackPos);
1119 thisMember = curMember;
1123 __ecereNameSpace__ecere__com__eClass_FindDataMemberAndOffset(_class, thisMember->name, &memberOffset, _class->module, (((void *)0)), (((void *)0)));
1128 struct __ecereNameSpace__ecere__com__Class * memberType = thisMember->dataTypeClass;
1131 memberType = thisMember->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, thisMember->dataTypeString);
1133 memberType = thisMember->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "int");
1134 if(memberType->type == 1)
1138 if(!memberType->_vTbl[__ecereVMethodID_class_OnGetDataFromString](memberType, (unsigned char *)data + (((thisMember->_class->type == 0) ? thisMember->_class->offset : 0) + memberOffset), memberString))
1144 struct __ecereNameSpace__ecere__com__DataValue value =
1149 if(memberType->_vTbl[__ecereVMethodID_class_OnGetDataFromString] == _class->_vTbl[__ecereVMethodID_class_OnGetDataFromString])
1151 if(!__ecereNameSpace__ecere__com__OnGetDataFromString(memberType, &value, memberString))
1154 else if(!memberType->_vTbl[__ecereVMethodID_class_OnGetDataFromString](memberType, &value, memberString))
1156 if(thisMember && !thisMember->isProperty)
1158 if(_class->type == 2)
1160 struct __ecereNameSpace__ecere__com__BitMember * bitMember = (struct __ecereNameSpace__ecere__com__BitMember *)thisMember;
1162 *(unsigned int *)data = (unsigned int)(((*(unsigned int *)data & ~bitMember->mask)) | ((value.ui64 << bitMember->pos) & bitMember->mask));
1165 *(int *)((unsigned char *)data + (((thisMember->_class->type == 0) ? thisMember->_class->offset : 0) + thisMember->offset)) = value.i;
1167 else if(thisMember->isProperty && ((struct __ecereNameSpace__ecere__com__Property *)thisMember)->Set)
1168 ((struct __ecereNameSpace__ecere__com__Property *)thisMember)->Set(data, value.i);
1174 memberName[0] = '\0';
1180 static void __ecereNameSpace__ecere__com__OnCopy(struct __ecereNameSpace__ecere__com__Class * _class, void ** data, void * newData)
1182 if(_class->type == 3 || _class->type == 2 || _class->type == 4)
1184 struct __ecereNameSpace__ecere__com__Class * dataType = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, _class->dataTypeString);
1187 dataType->_vTbl[__ecereVMethodID_class_OnCopy](dataType, data, newData);
1189 else if(_class->type != 1 && _class->type != 1000)
1194 memcpy(data, newData, _class->typeSize);
1196 memset(data, (unsigned char)0, _class->typeSize);
1199 static int __ecereNameSpace__ecere__com__DataMember_OnSerialize(struct __ecereNameSpace__ecere__com__DataMember * parentMember, void * data, struct __ecereNameSpace__ecere__com__Instance * channel)
1201 struct __ecereNameSpace__ecere__com__DataMember * member;
1202 struct __ecereNameSpace__ecere__com__Instance * module = parentMember->_class->module;
1204 for(member = parentMember->members.first; member; member = member->next)
1206 if(member->type == 0)
1208 struct __ecereNameSpace__ecere__com__Class * memberType = member->dataTypeClass;
1211 memberType = member->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, member->dataTypeString);
1213 memberType = member->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "int");
1214 if(memberType->type == 1 || memberType->type == 0 || memberType->type == 5)
1216 memberType->_vTbl[__ecereVMethodID_class_OnSerialize](memberType, (unsigned char *)data + member->offset, channel);
1220 struct __ecereNameSpace__ecere__com__DataValue value;
1222 value.i = *(int *)((unsigned char *)data + member->offset);
1223 memberType->_vTbl[__ecereVMethodID_class_OnSerialize](memberType, &value);
1228 __ecereNameSpace__ecere__com__DataMember_OnSerialize(member, (unsigned char *)data + member->offset, channel);
1234 static void __ecereNameSpace__ecere__com__OnSerialize(struct __ecereNameSpace__ecere__com__Class * _class, void * data, struct __ecereNameSpace__ecere__com__Instance * channel)
1236 struct __ecereNameSpace__ecere__com__Instance * module = _class->module;
1238 if(_class->type == 3 || _class->type == 2 || _class->type == 4)
1240 struct __ecereNameSpace__ecere__com__Class * dataType = __ecereNameSpace__ecere__com__eSystem_FindClass(module, _class->dataTypeString);
1243 dataType->_vTbl[__ecereVMethodID_class_OnSerialize](dataType, data, channel);
1245 else if(_class->type == 0 || _class->type == 5 || _class->type == 1)
1248 struct __ecereNameSpace__ecere__com__Class * lastClass = (((void *)0));
1250 while(lastClass != _class)
1252 struct __ecereNameSpace__ecere__com__DataMember * member;
1254 for(; _class && (!_class->base || _class->base->type != 1000) && _class != lastClass; _class = _class->base)
1257 for(member = _class->membersAndProperties.first; member; member = member->next)
1259 if(member->isProperty || member->type == 0)
1261 struct __ecereNameSpace__ecere__com__Class * memberType = member->dataTypeClass;
1264 memberType = member->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, member->dataTypeString);
1267 if(member->isProperty)
1272 if(!strcmp(memberType->name, "String") || memberType->type == 0 || memberType->type == 5)
1274 memberType->_vTbl[__ecereVMethodID_class_OnSerialize](memberType, data ? (*(void **)((unsigned char *)data + member->_class->offset + member->offset)) : (((void *)0)), channel);
1277 memberType->_vTbl[__ecereVMethodID_class_OnSerialize](memberType, data ? (((unsigned char *)data + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset))) : (((void *)0)), channel);
1286 __ecereNameSpace__ecere__com__DataMember_OnSerialize(member, data ? ((unsigned char *)data + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset)) : (((void *)0)), channel);
1294 static int __ecereNameSpace__ecere__com__DataMember_OnUnserialize(struct __ecereNameSpace__ecere__com__DataMember * parentMember, void * data, struct __ecereNameSpace__ecere__com__Instance * channel)
1296 struct __ecereNameSpace__ecere__com__DataMember * member;
1297 struct __ecereNameSpace__ecere__com__Instance * module = parentMember->_class->module;
1299 for(member = parentMember->members.first; member; member = member->next)
1301 if(member->type == 0)
1303 struct __ecereNameSpace__ecere__com__Class * memberType = member->dataTypeClass;
1306 memberType = member->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, member->dataTypeString);
1308 memberType = member->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "int");
1309 if(memberType->type == 1 || memberType->type == 0 || memberType->type == 5)
1311 memberType->_vTbl[__ecereVMethodID_class_OnUnserialize](memberType, (unsigned char *)data + member->offset, channel);
1315 struct __ecereNameSpace__ecere__com__DataValue value;
1317 memberType->_vTbl[__ecereVMethodID_class_OnUnserialize](memberType, &value);
1318 *(int *)((unsigned char *)data + member->offset) = value.i;
1323 __ecereNameSpace__ecere__com__DataMember_OnUnserialize(member, (unsigned char *)data + member->offset, channel);
1329 static void __ecereNameSpace__ecere__com__OnUnserialize(struct __ecereNameSpace__ecere__com__Class * _class, void ** data, struct __ecereNameSpace__ecere__com__Instance * channel)
1331 struct __ecereNameSpace__ecere__com__Instance * module = _class->module;
1333 if(_class->type == 3 || _class->type == 2 || _class->type == 4)
1335 struct __ecereNameSpace__ecere__com__Class * dataType = __ecereNameSpace__ecere__com__eSystem_FindClass(module, _class->dataTypeString);
1338 dataType->_vTbl[__ecereVMethodID_class_OnUnserialize](dataType, data, channel);
1340 else if(_class->type == 0 || _class->type == 5 || _class->type == 1)
1344 struct __ecereNameSpace__ecere__com__Class * lastClass = (((void *)0));
1346 if(_class->type == 0 || _class->type == 5)
1348 data = *data = __ecereNameSpace__ecere__com__eInstance_New(_class);
1349 if(_class->type == 0)
1350 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)((struct __ecereNameSpace__ecere__com__Instance *)data))->_refCount++;
1352 else if(_class->type == 1)
1353 memset(data, (unsigned char)0, _class->structSize);
1354 while(lastClass != _class)
1356 struct __ecereNameSpace__ecere__com__DataMember * member;
1358 for(; _class && (!_class->base || _class->base->type != 1000) && _class != lastClass; _class = _class->base)
1361 for(member = _class->membersAndProperties.first; member; member = member->next)
1363 if(member->isProperty || member->type == 0)
1365 struct __ecereNameSpace__ecere__com__Class * memberType = member->dataTypeClass;
1368 memberType = member->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, member->dataTypeString);
1371 if(member->isProperty)
1375 memberType->_vTbl[__ecereVMethodID_class_OnUnserialize](memberType, (unsigned char *)data + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset), channel);
1383 __ecereNameSpace__ecere__com__DataMember_OnUnserialize(member, (unsigned char *)data + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset), channel);
1391 static int __ecereNameSpace__ecere__com__Integer_OnCompare(struct __ecereNameSpace__ecere__com__Class * _class, int * data1, int * data2)
1397 else if(*data1 < *data2)
1402 extern int sprintf(char * , char * , ...);
1404 char * __ecereNameSpace__ecere__com__Integer_OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, int * data, char * string, void * fieldData, unsigned int * needClass)
1406 sprintf(string, "%d", *data);
1410 long int strtol(const char * nptr, char ** endptr, int base);
1412 static unsigned int __ecereNameSpace__ecere__com__Integer_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * _class, int * data, char * string)
1415 int result = strtol(string, &end, 0);
1425 static int __ecereNameSpace__ecere__com__UInteger_OnCompare(struct __ecereNameSpace__ecere__com__Class * _class, unsigned int * data1, unsigned int * data2)
1431 else if(!data1 && data2)
1433 else if(!data1 && !data2)
1435 else if(*data1 > *data2)
1437 else if(*data1 < *data2)
1442 static char * __ecereNameSpace__ecere__com__UInteger_OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, unsigned int * data, char * string, void * fieldData, unsigned int * needClass)
1444 sprintf(string, "%u", *data);
1448 extern unsigned long strtoul(const char * nptr, char * * endptr, int base);
1450 static unsigned int __ecereNameSpace__ecere__com__UInteger_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * _class, unsigned int * data, char * string)
1453 unsigned int result = strtoul(string, &end, 0);
1463 static int __ecereNameSpace__ecere__com__Byte_OnCompare(struct __ecereNameSpace__ecere__com__Class * _class, unsigned char * data1, unsigned char * data2)
1469 else if(*data1 < *data2)
1474 static char * __ecereNameSpace__ecere__com__Byte_OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, unsigned char * data, char * string, void * fieldData, unsigned int * needClass)
1476 sprintf(string, "%u", (int)*data);
1480 static char * __ecereNameSpace__ecere__com__Char_OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, char * data, char * string, void * fieldData, unsigned int * needClass)
1482 if(needClass && *needClass)
1487 strcpy(string, "'\t'");
1489 strcpy(string, "'\n'");
1491 strcpy(string, "'\r'");
1493 strcpy(string, "'\a'");
1495 strcpy(string, "'\\'");
1496 else if(ch < (char)32 || ch >= (char)127)
1497 sprintf(string, "'\o'", ch);
1499 sprintf(string, "'%c'", ch);
1502 sprintf(string, "%c", *data);
1506 static unsigned int __ecereNameSpace__ecere__com__Byte_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * _class, unsigned char * data, char * string)
1509 unsigned char result = (unsigned char)strtoul(string, &end, 0);
1519 extern int __ecereNameSpace__ecere__com__GetRuntimePlatform(void);
1521 static char * __ecereNameSpace__ecere__com__Int64_OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, long long * data, char * string, void * fieldData, unsigned int * needClass)
1523 sprintf(string, ((__ecereNameSpace__ecere__com__GetRuntimePlatform() == 1) ? "%I64d" : "%lld"), *data);
1527 static char * __ecereNameSpace__ecere__com__UInt64_OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, uint64 * data, char * string, void * fieldData, unsigned int * needClass)
1529 sprintf(string, ((__ecereNameSpace__ecere__com__GetRuntimePlatform() == 1) ? "%I64u" : "%llu"), *data);
1533 int __ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_WriteData;
1535 void __ecereNameSpace__ecere__com__Byte_OnSerialize(struct __ecereNameSpace__ecere__com__Class * _class, unsigned char * data, struct __ecereNameSpace__ecere__com__Instance * channel)
1537 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, unsigned char * data, unsigned int numBytes))channel->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_WriteData])(channel, data, 1);
1540 int __ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_ReadData;
1542 void __ecereNameSpace__ecere__com__Byte_OnUnserialize(struct __ecereNameSpace__ecere__com__Class * _class, unsigned char * data, struct __ecereNameSpace__ecere__com__Instance * channel)
1544 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)
1545 *data = (unsigned char)0;
1548 void __ecereNameSpace__ecere__com__Int_OnSerialize(struct __ecereNameSpace__ecere__com__Class * _class, int * data, struct __ecereNameSpace__ecere__com__Instance * channel)
1550 unsigned char bytes[4];
1552 (bytes)[0] = (unsigned char)(((*data) >> 24) & 0xFF);
1553 (bytes)[1] = (unsigned char)(((*data) >> 16) & 0xFF);
1554 (bytes)[2] = (unsigned char)(((*data) >> 8) & 0xFF);
1555 (bytes)[3] = (unsigned char)((*data) & 0xFF);
1557 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, unsigned char * data, unsigned int numBytes))channel->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_WriteData])(channel, bytes, 4);
1560 void __ecereNameSpace__ecere__com__Int_OnUnserialize(struct __ecereNameSpace__ecere__com__Class * _class, int * data, struct __ecereNameSpace__ecere__com__Instance * channel)
1562 unsigned char bytes[4];
1564 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)
1565 *data = (unsigned int)(((bytes)[0] << (unsigned char)24) | ((bytes)[1] << (unsigned char)16) | ((bytes)[2] << (unsigned char)8) | (bytes)[3]);
1570 void __ecereNameSpace__ecere__com__Int64_OnSerialize(struct __ecereNameSpace__ecere__com__Class * _class, long long * data, struct __ecereNameSpace__ecere__com__Instance * channel)
1572 unsigned char bytes[8];
1574 (bytes)[0] = (unsigned char)(((*data) >> 56) & 0xFF);
1575 (bytes)[1] = (unsigned char)(((*data) >> 48) & 0xFF);
1576 (bytes)[2] = (unsigned char)(((*data) >> 40) & 0xFF);
1577 (bytes)[3] = (unsigned char)(((*data) >> 32) & 0xFF);
1578 (bytes)[4] = (unsigned char)(((*data) >> 24) & 0xFF);
1579 (bytes)[5] = (unsigned char)(((*data) >> 16) & 0xFF);
1580 (bytes)[6] = (unsigned char)(((*data) >> 8) & 0xFF);
1581 (bytes)[7] = (unsigned char)((*data) & 0xFF);
1583 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, unsigned char * data, unsigned int numBytes))channel->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_WriteData])(channel, bytes, 8);
1586 void __ecereNameSpace__ecere__com__Int64_OnUnserialize(struct __ecereNameSpace__ecere__com__Class * _class, long long * data, struct __ecereNameSpace__ecere__com__Instance * channel)
1588 unsigned char bytes[8];
1590 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)
1591 *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]);
1596 void __ecereNameSpace__ecere__com__Word_OnSerialize(struct __ecereNameSpace__ecere__com__Class * _class, unsigned short * data, struct __ecereNameSpace__ecere__com__Instance * channel)
1598 unsigned char bytes[2];
1600 (bytes)[0] = (unsigned char)(((*data) >> (unsigned short)8) & (unsigned short)0xFF);
1601 (bytes)[1] = (unsigned char)(((*data)) & (unsigned short)0xFF);
1603 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, unsigned char * data, unsigned int numBytes))channel->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_WriteData])(channel, bytes, 2);
1606 void __ecereNameSpace__ecere__com__Word_OnUnserialize(struct __ecereNameSpace__ecere__com__Class * _class, unsigned short * data, struct __ecereNameSpace__ecere__com__Instance * channel)
1608 unsigned char bytes[2];
1610 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)
1611 *data = (unsigned short)(((bytes)[0] << (unsigned char)8) | (bytes)[1]);
1613 *data = (unsigned short)0;
1616 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_RegisterClass(int type, char * name, char * baseName, int size, int sizeClass, unsigned int (* )(void * ), void (* )(void * ), struct __ecereNameSpace__ecere__com__Instance * module, int declMode, int inheritanceAccess);
1618 extern char * __ecereNameSpace__ecere__sys__CopyString(char * string);
1620 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);
1622 static void __ecereNameSpace__ecere__com__RegisterClass_Integer(struct __ecereNameSpace__ecere__com__Instance * module)
1624 struct __ecereNameSpace__ecere__com__Class * integerClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "int", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
1626 integerClass->type = 1000;
1627 (__ecereNameSpace__ecere__com__eSystem_Delete(integerClass->dataTypeString), integerClass->dataTypeString = 0);
1628 integerClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("int");
1629 integerClass->structSize = 0;
1630 integerClass->typeSize = sizeof(int);
1631 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnCompare", (((void *)0)), __ecereNameSpace__ecere__com__Integer_OnCompare, 1);
1632 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetString", (((void *)0)), __ecereNameSpace__ecere__com__Integer_OnGetString, 1);
1633 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetDataFromString", (((void *)0)), __ecereNameSpace__ecere__com__Integer_OnGetDataFromString, 1);
1634 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Int_OnSerialize, 1);
1635 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Int_OnUnserialize, 1);
1636 integerClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "int64", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
1637 integerClass->type = 1000;
1638 integerClass->structSize = 0;
1639 integerClass->typeSize = sizeof(long long);
1640 (__ecereNameSpace__ecere__com__eSystem_Delete(integerClass->dataTypeString), integerClass->dataTypeString = 0);
1641 integerClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("int64");
1642 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetString", (((void *)0)), __ecereNameSpace__ecere__com__Int64_OnGetString, 1);
1643 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Int64_OnSerialize, 1);
1644 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Int64_OnUnserialize, 1);
1645 integerClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "uint", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
1646 integerClass->type = 1000;
1647 (__ecereNameSpace__ecere__com__eSystem_Delete(integerClass->dataTypeString), integerClass->dataTypeString = 0);
1648 integerClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("unsigned int");
1649 integerClass->structSize = 0;
1650 integerClass->typeSize = sizeof(unsigned int);
1651 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnCompare", (((void *)0)), __ecereNameSpace__ecere__com__UInteger_OnCompare, 1);
1652 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetString", (((void *)0)), __ecereNameSpace__ecere__com__UInteger_OnGetString, 1);
1653 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetDataFromString", (((void *)0)), __ecereNameSpace__ecere__com__UInteger_OnGetDataFromString, 1);
1654 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Int_OnSerialize, 1);
1655 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Int_OnUnserialize, 1);
1656 integerClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "unsigned int", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
1657 integerClass->type = 1000;
1658 (__ecereNameSpace__ecere__com__eSystem_Delete(integerClass->dataTypeString), integerClass->dataTypeString = 0);
1659 integerClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("unsigned int");
1660 integerClass->structSize = 0;
1661 integerClass->typeSize = sizeof(unsigned int);
1662 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnCompare", (((void *)0)), __ecereNameSpace__ecere__com__UInteger_OnCompare, 1);
1663 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetString", (((void *)0)), __ecereNameSpace__ecere__com__UInteger_OnGetString, 1);
1664 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetDataFromString", (((void *)0)), __ecereNameSpace__ecere__com__UInteger_OnGetDataFromString, 1);
1665 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Int_OnSerialize, 1);
1666 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Int_OnUnserialize, 1);
1667 integerClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "uint16", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
1668 integerClass->type = 1000;
1669 (__ecereNameSpace__ecere__com__eSystem_Delete(integerClass->dataTypeString), integerClass->dataTypeString = 0);
1670 integerClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("unsigned short");
1671 integerClass->structSize = 0;
1672 integerClass->typeSize = sizeof(unsigned short);
1673 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Word_OnSerialize, 1);
1674 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Word_OnUnserialize, 1);
1675 integerClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "short", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
1676 integerClass->type = 1000;
1677 (__ecereNameSpace__ecere__com__eSystem_Delete(integerClass->dataTypeString), integerClass->dataTypeString = 0);
1678 integerClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("short");
1679 integerClass->structSize = 0;
1680 integerClass->typeSize = sizeof(short);
1681 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Word_OnSerialize, 1);
1682 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Word_OnUnserialize, 1);
1683 integerClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "uint32", "uint", 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
1684 integerClass->type = 1000;
1685 (__ecereNameSpace__ecere__com__eSystem_Delete(integerClass->dataTypeString), integerClass->dataTypeString = 0);
1686 integerClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("unsigned int");
1687 integerClass->structSize = 0;
1688 integerClass->typeSize = sizeof(unsigned int);
1689 integerClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "uint64", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
1690 integerClass->type = 1000;
1691 (__ecereNameSpace__ecere__com__eSystem_Delete(integerClass->dataTypeString), integerClass->dataTypeString = 0);
1692 integerClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("uint64");
1693 integerClass->structSize = 0;
1694 integerClass->typeSize = sizeof(uint64);
1695 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetString", (((void *)0)), __ecereNameSpace__ecere__com__UInt64_OnGetString, 1);
1696 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Int64_OnSerialize, 1);
1697 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Int64_OnUnserialize, 1);
1698 integerClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "byte", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
1699 integerClass->type = 1000;
1700 (__ecereNameSpace__ecere__com__eSystem_Delete(integerClass->dataTypeString), integerClass->dataTypeString = 0);
1701 integerClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("unsigned char");
1702 integerClass->structSize = 0;
1703 integerClass->typeSize = sizeof(unsigned char);
1704 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnCompare", (((void *)0)), __ecereNameSpace__ecere__com__Byte_OnCompare, 1);
1705 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetString", (((void *)0)), __ecereNameSpace__ecere__com__Byte_OnGetString, 1);
1706 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetDataFromString", (((void *)0)), __ecereNameSpace__ecere__com__Byte_OnGetDataFromString, 1);
1707 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Byte_OnSerialize, 1);
1708 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Byte_OnUnserialize, 1);
1709 integerClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "char", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
1710 integerClass->type = 1000;
1711 (__ecereNameSpace__ecere__com__eSystem_Delete(integerClass->dataTypeString), integerClass->dataTypeString = 0);
1712 integerClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("char");
1713 integerClass->structSize = 0;
1714 integerClass->typeSize = sizeof(char);
1715 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnCompare", (((void *)0)), __ecereNameSpace__ecere__com__Byte_OnCompare, 1);
1716 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetString", (((void *)0)), __ecereNameSpace__ecere__com__Char_OnGetString, 1);
1717 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnGetDataFromString", (((void *)0)), __ecereNameSpace__ecere__com__Byte_OnGetDataFromString, 1);
1718 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Byte_OnSerialize, 1);
1719 __ecereNameSpace__ecere__com__eClass_AddMethod(integerClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Byte_OnUnserialize, 1);
1722 static int __ecereNameSpace__ecere__com__Float_OnCompare(struct __ecereNameSpace__ecere__com__Class * _class, float * data1, float * data2)
1728 else if(*data1 < *data2)
1733 static char * __ecereNameSpace__ecere__com__Float_OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, float * data, char * string, void * fieldData, unsigned int * needClass)
1737 int numDigits = 7, num = 1;
1740 while(numDigits && (float)num < *data)
1741 numDigits--, num *= 10;
1742 sprintf(format, "%%.%df", numDigits);
1743 sprintf(string, format, *data);
1744 c = strlen(string) - 1;
1747 if(string[c] != '0')
1748 last = ((last > c) ? last : c);
1749 if(string[c] == '.')
1752 string[c] = (char)0;
1754 string[last + 1] = (char)0;
1761 extern double strtod(char * , char * * );
1763 static unsigned int __ecereNameSpace__ecere__com__Float_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * _class, float * data, char * string)
1766 float result = (float)strtod(string, &end);
1776 static void __ecereNameSpace__ecere__com__Float_OnSerialize(struct __ecereNameSpace__ecere__com__Class * _class, float * data, struct __ecereNameSpace__ecere__com__Instance * channel)
1778 unsigned char bytes[4];
1780 (bytes)[0] = (unsigned char)(((*(unsigned int *)data) >> 24) & 0xFF);
1781 (bytes)[1] = (unsigned char)(((*(unsigned int *)data) >> 16) & 0xFF);
1782 (bytes)[2] = (unsigned char)(((*(unsigned int *)data) >> 8) & 0xFF);
1783 (bytes)[3] = (unsigned char)((*(unsigned int *)data) & 0xFF);
1785 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, unsigned char * data, unsigned int numBytes))channel->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_WriteData])(channel, bytes, 4);
1788 static void __ecereNameSpace__ecere__com__Float_OnUnserialize(struct __ecereNameSpace__ecere__com__Class * _class, float * data, struct __ecereNameSpace__ecere__com__Instance * channel)
1790 unsigned char bytes[4];
1792 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)
1793 *(unsigned int *)data = (unsigned int)(((bytes)[0] << (unsigned char)24) | ((bytes)[1] << (unsigned char)16) | ((bytes)[2] << (unsigned char)8) | (bytes)[3]);
1798 static void __ecereNameSpace__ecere__com__RegisterClass_Float(struct __ecereNameSpace__ecere__com__Instance * module)
1800 struct __ecereNameSpace__ecere__com__Class * floatClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "float", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
1802 floatClass->type = 1000;
1803 (__ecereNameSpace__ecere__com__eSystem_Delete(floatClass->dataTypeString), floatClass->dataTypeString = 0);
1804 floatClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("float");
1805 floatClass->structSize = 0;
1806 floatClass->typeSize = sizeof(float);
1807 __ecereNameSpace__ecere__com__eClass_AddMethod(floatClass, "OnCompare", (((void *)0)), __ecereNameSpace__ecere__com__Float_OnCompare, 1);
1808 __ecereNameSpace__ecere__com__eClass_AddMethod(floatClass, "OnGetString", (((void *)0)), __ecereNameSpace__ecere__com__Float_OnGetString, 1);
1809 __ecereNameSpace__ecere__com__eClass_AddMethod(floatClass, "OnGetDataFromString", (((void *)0)), __ecereNameSpace__ecere__com__Float_OnGetDataFromString, 1);
1810 __ecereNameSpace__ecere__com__eClass_AddMethod(floatClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Float_OnSerialize, 1);
1811 __ecereNameSpace__ecere__com__eClass_AddMethod(floatClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Float_OnUnserialize, 1);
1814 static int __ecereNameSpace__ecere__com__Double_OnCompare(struct __ecereNameSpace__ecere__com__Class * _class, double * data1, double * data2)
1820 else if(*data1 < *data2)
1825 static char * __ecereNameSpace__ecere__com__Double_OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, double * data, char * string, void * fieldData, unsigned int * needClass)
1830 if(runtimePlatform == 1)
1831 sprintf(string, "%.15g", *data);
1833 sprintf(string, "%.13lf", *data);
1834 c = strlen(string) - 1;
1837 if(string[c] != '0')
1838 last = ((last > c) ? last : c);
1839 if(string[c] == '.')
1842 string[c] = (char)0;
1844 string[last + 1] = (char)0;
1851 static unsigned int __ecereNameSpace__ecere__com__Double_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * _class, double * data, char * string)
1856 result = strtod(string, &end);
1865 static void __ecereNameSpace__ecere__com__Double_OnSerialize(struct __ecereNameSpace__ecere__com__Class * _class, double * data, struct __ecereNameSpace__ecere__com__Instance * channel)
1867 unsigned char bytes[8];
1869 (bytes)[0] = (unsigned char)(((*(uint64 *)data) >> 56) & 0xFF);
1870 (bytes)[1] = (unsigned char)(((*(uint64 *)data) >> 48) & 0xFF);
1871 (bytes)[2] = (unsigned char)(((*(uint64 *)data) >> 40) & 0xFF);
1872 (bytes)[3] = (unsigned char)(((*(uint64 *)data) >> 32) & 0xFF);
1873 (bytes)[4] = (unsigned char)(((*(uint64 *)data) >> 24) & 0xFF);
1874 (bytes)[5] = (unsigned char)(((*(uint64 *)data) >> 16) & 0xFF);
1875 (bytes)[6] = (unsigned char)(((*(uint64 *)data) >> 8) & 0xFF);
1876 (bytes)[7] = (unsigned char)((*(uint64 *)data) & 0xFF);
1878 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, unsigned char * data, unsigned int numBytes))channel->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_WriteData])(channel, bytes, 8);
1881 static void __ecereNameSpace__ecere__com__Double_OnUnserialize(struct __ecereNameSpace__ecere__com__Class * _class, double * data, struct __ecereNameSpace__ecere__com__Instance * channel)
1883 unsigned char bytes[8];
1885 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)
1886 *(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]);
1891 static void __ecereNameSpace__ecere__com__RegisterClass_Double(struct __ecereNameSpace__ecere__com__Instance * module)
1893 struct __ecereNameSpace__ecere__com__Class * doubleClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "double", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
1895 doubleClass->type = 1000;
1896 (__ecereNameSpace__ecere__com__eSystem_Delete(doubleClass->dataTypeString), doubleClass->dataTypeString = 0);
1897 doubleClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("double");
1898 doubleClass->structSize = 0;
1899 doubleClass->typeSize = sizeof(double);
1900 __ecereNameSpace__ecere__com__eClass_AddMethod(doubleClass, "OnCompare", (((void *)0)), __ecereNameSpace__ecere__com__Double_OnCompare, 1);
1901 __ecereNameSpace__ecere__com__eClass_AddMethod(doubleClass, "OnGetString", (((void *)0)), __ecereNameSpace__ecere__com__Double_OnGetString, 1);
1902 __ecereNameSpace__ecere__com__eClass_AddMethod(doubleClass, "OnGetDataFromString", (((void *)0)), __ecereNameSpace__ecere__com__Double_OnGetDataFromString, 1);
1903 __ecereNameSpace__ecere__com__eClass_AddMethod(doubleClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Double_OnSerialize, 1);
1904 __ecereNameSpace__ecere__com__eClass_AddMethod(doubleClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Double_OnUnserialize, 1);
1907 struct __ecereNameSpace__ecere__com__StaticString
1912 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__StaticString;
1914 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)
1916 int len = this ? strlen(this->string) : 0;
1918 ((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);
1921 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)
1928 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++)
1930 (*(this)).string[c++] = '\0';
1934 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)
1939 result = (strcasecmp)(this->string, string2->string);
1940 else if(!this && string2)
1942 else if(this && !string2)
1947 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)
1949 return (char *)(this ? this->string : (((void *)0)));
1952 void __ecereMethod___ecereNameSpace__ecere__com__StaticString_OnFree(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__StaticString * this)
1956 extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
1958 static void __ecereNameSpace__ecere__com__String_OnCopy(struct __ecereNameSpace__ecere__com__Class * _class, char ** data, char * newData)
1962 int len = strlen(newData);
1966 *data = __ecereNameSpace__ecere__com__eSystem_New(len + 1);
1967 memcpy(*data, newData, len + 1);
1970 *data = (((void *)0));
1973 *data = (((void *)0));
1976 static unsigned int __ecereNameSpace__ecere__com__String_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * _class, char ** data, char * newData)
1980 int len = strlen(newData);
1984 *data = __ecereNameSpace__ecere__com__eSystem_New(len + 1);
1985 memcpy(*data, newData, len + 1);
1988 *data = (((void *)0));
1993 int __ecereNameSpace__ecere__com__String_OnCompare(struct __ecereNameSpace__ecere__com__Class * _class, char * string1, char * string2)
1997 if(string1 && string2)
1998 result = (strcasecmp)(string1, string2);
1999 else if(!string1 && string2)
2001 else if(string1 && !string2)
2006 static char * __ecereNameSpace__ecere__com__String_OnGetString(struct __ecereNameSpace__ecere__com__Class * _class, char * string, char * tempString, void * fieldData, unsigned int * needClass)
2011 static void __ecereNameSpace__ecere__com__String_OnFree(struct __ecereNameSpace__ecere__com__Class * _class, char * string)
2015 __ecereNameSpace__ecere__com__eSystem_Delete(string);
2019 static void __ecereNameSpace__ecere__com__String_OnSerialize(struct __ecereNameSpace__ecere__com__Class * _class, char * string, struct __ecereNameSpace__ecere__com__Instance * channel)
2021 int len = string ? strlen(string) : 0;
2023 ((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);
2026 extern unsigned int __ecereNameSpace__ecere__sys__UTF8Validate(char * source);
2028 extern int __ecereNameSpace__ecere__sys__ISO8859_1toUTF8(char * source, char * dest, int max);
2030 static void __ecereNameSpace__ecere__com__String_OnUnserialize(struct __ecereNameSpace__ecere__com__Class * _class, char ** string, struct __ecereNameSpace__ecere__com__Instance * channel)
2035 unsigned int size = 64;
2037 *string = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (size));
2038 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++)
2043 *string = __ecereNameSpace__ecere__com__eSystem_Renew(*string, sizeof(char) * (size));
2046 (*string)[c++] = '\0';
2047 if(!__ecereNameSpace__ecere__sys__UTF8Validate(*string))
2049 char * newString = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (c * 2));
2051 __ecereNameSpace__ecere__sys__ISO8859_1toUTF8(*string, newString, c * 2);
2052 (__ecereNameSpace__ecere__com__eSystem_Delete(*string), *string = 0);
2053 *string = __ecereNameSpace__ecere__com__eSystem_Renew(newString, sizeof(char) * (strlen(newString) + 1));
2056 *string = __ecereNameSpace__ecere__com__eSystem_Renew(*string, sizeof(char) * (c));
2060 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);
2062 static void __ecereNameSpace__ecere__com__RegisterClass_String(struct __ecereNameSpace__ecere__com__Instance * module)
2064 struct __ecereNameSpace__ecere__com__Class * stringClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "char *", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
2066 (__ecereNameSpace__ecere__com__eSystem_Delete(stringClass->dataTypeString), stringClass->dataTypeString = 0);
2067 stringClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("char *");
2068 stringClass->structSize = 0;
2069 __ecereNameSpace__ecere__com__eClass_AddMethod(stringClass, "OnCompare", (((void *)0)), __ecereNameSpace__ecere__com__String_OnCompare, 1);
2070 __ecereNameSpace__ecere__com__eClass_AddMethod(stringClass, "OnCopy", (((void *)0)), __ecereNameSpace__ecere__com__String_OnCopy, 1);
2071 __ecereNameSpace__ecere__com__eClass_AddMethod(stringClass, "OnFree", (((void *)0)), __ecereNameSpace__ecere__com__String_OnFree, 1);
2072 __ecereNameSpace__ecere__com__eClass_AddMethod(stringClass, "OnGetString", (((void *)0)), __ecereNameSpace__ecere__com__String_OnGetString, 1);
2073 __ecereNameSpace__ecere__com__eClass_AddMethod(stringClass, "OnGetDataFromString", (((void *)0)), __ecereNameSpace__ecere__com__String_OnGetDataFromString, 1);
2074 __ecereNameSpace__ecere__com__eClass_AddMethod(stringClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__String_OnSerialize, 1);
2075 __ecereNameSpace__ecere__com__eClass_AddMethod(stringClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__String_OnUnserialize, 1);
2076 stringClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "String", "char *", 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
2077 stringClass->structSize = 0;
2078 __ecereNameSpace__ecere__com__eClass_AddProperty(stringClass, (((void *)0)), "char *", (((void *)0)), (((void *)0)), 1);
2081 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);
2083 void __ecereNameSpace__ecere__com__InitializeDataTypes1(struct __ecereNameSpace__ecere__com__Instance * module)
2085 struct __ecereNameSpace__ecere__com__Class * baseClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "class");
2087 __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);
2088 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(baseClass, "OnCompare", "int typed_object::OnCompare(any_object object)", __ecereNameSpace__ecere__com__OnCompare, 1);
2089 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(baseClass, "OnCopy", "void typed_object&::OnCopy(any_object newData)", __ecereNameSpace__ecere__com__OnCopy, 1);
2090 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(baseClass, "OnFree", "void typed_object::OnFree(void)", __ecereNameSpace__ecere__com__OnFree, 1);
2091 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(baseClass, "OnGetString", "char * typed_object::OnGetString(char * tempString, void * fieldData, bool * needClass)", __ecereNameSpace__ecere__com__OnGetString, 1);
2092 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(baseClass, "OnGetDataFromString", "bool typed_object&::OnGetDataFromString(char * string)", __ecereNameSpace__ecere__com__OnGetDataFromString, 1);
2093 __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);
2094 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(baseClass, "OnSerialize", "void typed_object::OnSerialize(IOChannel channel)", __ecereNameSpace__ecere__com__OnSerialize, 1);
2095 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(baseClass, "OnUnserialize", "void typed_object&::OnUnserialize(IOChannel channel)", __ecereNameSpace__ecere__com__OnUnserialize, 1);
2096 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(baseClass, "OnSaveEdit", "bool typed_object&::OnSaveEdit(Window window, void * object)", (((void *)0)), 1);
2099 void __ecereNameSpace__ecere__com__InitializeDataTypes(struct __ecereNameSpace__ecere__com__Instance * module)
2101 struct __ecereNameSpace__ecere__com__Class * enumClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "enum");
2103 __ecereNameSpace__ecere__com__eClass_AddMethod(enumClass, "OnSerialize", (((void *)0)), __ecereNameSpace__ecere__com__Int_OnSerialize, 1);
2104 __ecereNameSpace__ecere__com__eClass_AddMethod(enumClass, "OnUnserialize", (((void *)0)), __ecereNameSpace__ecere__com__Int_OnUnserialize, 1);
2105 __ecereNameSpace__ecere__com__RegisterClass_Integer(module);
2106 __ecereNameSpace__ecere__com__RegisterClass_Float(module);
2107 __ecereNameSpace__ecere__com__RegisterClass_Double(module);
2108 __ecereNameSpace__ecere__com__RegisterClass_String(module);
2111 typedef __builtin_va_list __gnuc_va_list;
2113 typedef __gnuc_va_list va_list;
2115 typedef unsigned int size_t;
2117 void exit(int status);
2119 void * calloc(size_t nmemb, size_t size);
2121 void free(void * ptr);
2123 void * malloc(size_t size);
2125 void * realloc(void * ptr, size_t size);
2127 long long int strtoll(const char * nptr, char ** endptr, int base);
2129 unsigned long long int strtoull(const char * nptr, char ** endptr, int base);
2133 FILE * bsl_stdin(void);
2135 FILE * bsl_stdout(void);
2137 FILE * bsl_stderr(void);
2139 char * fgets(char * s, int size, FILE * stream);
2141 FILE * fopen(const char * path, const char * mode);
2143 int fclose(FILE * fp);
2145 int fflush(FILE * stream);
2147 int fgetc(FILE * stream);
2149 int fprintf(FILE * stream, const char * format, ...);
2151 int fputc(int c, FILE * stream);
2153 size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream);
2155 size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream);
2157 int fseek(FILE * stream, long offset, int whence);
2159 long ftell(FILE * stream);
2161 int feof(FILE * stream);
2163 int ferror(FILE * stream);
2165 int fileno(FILE * stream);
2167 int __ecereNameSpace__ecere__com__PrintStdArgsToBuffer(char * buffer, int maxLen, struct __ecereNameSpace__ecere__com__Class * class, void * object, va_list args)
2170 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)));
2174 len = strlen(result);
2177 if(result != buffer)
2178 memcpy(buffer, result, len);
2182 struct __ecereNameSpace__ecere__com__Class * _class = (((void *)0));
2183 void * data = (((void *)0));
2185 _class = __builtin_va_arg(args, void *);
2188 data = __builtin_va_arg(args, void *);
2191 result = (char *)_class->_vTbl[__ecereVMethodID_class_OnGetString](_class, data, buffer + len, (((void *)0)), (((void *)0)));
2194 int newLen = strlen(result);
2196 if(len + newLen >= maxLen)
2197 newLen = maxLen - 1 - len;
2198 if(result != buffer + len)
2199 memcpy(buffer + len, result, newLen);
2204 buffer[len] = (char)0;
2208 int __ecereNameSpace__ecere__com__PrintBuf(char * buffer, int maxLen, struct __ecereNameSpace__ecere__com__Class * class, void * object, ...)
2213 __builtin_va_start(args, object);
2214 len = __ecereNameSpace__ecere__com__PrintStdArgsToBuffer(buffer, maxLen, class, object, args);
2215 __builtin_va_end(args);
2219 int __ecereNameSpace__ecere__com__PrintLnBuf(char * buffer, int maxLen, struct __ecereNameSpace__ecere__com__Class * class, void * object, ...)
2224 __builtin_va_start(args, object);
2225 len = __ecereNameSpace__ecere__com__PrintStdArgsToBuffer(buffer, maxLen - 1, class, object, args);
2226 buffer[len++] = '\n';
2228 __builtin_va_end(args);
2232 char * __ecereNameSpace__ecere__com__PrintString(struct __ecereNameSpace__ecere__com__Class * class, void * object, ...)
2239 __builtin_va_start(args, object);
2240 len = __ecereNameSpace__ecere__com__PrintStdArgsToBuffer(buffer, sizeof buffer, class, object, args);
2241 string = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (len + 1));
2242 memcpy(string, buffer, len + 1);
2243 __builtin_va_end(args);
2247 char * __ecereNameSpace__ecere__com__PrintLnString(struct __ecereNameSpace__ecere__com__Class * class, void * object, ...)
2254 __builtin_va_start(args, object);
2255 len = __ecereNameSpace__ecere__com__PrintStdArgsToBuffer(buffer, sizeof buffer, class, object, args);
2256 string = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (len + 2));
2257 memcpy(string, buffer, len);
2258 string[len++] = '\n';
2260 __builtin_va_end(args);
2264 extern int puts(char * );
2266 void __ecereNameSpace__ecere__com__PrintLn(struct __ecereNameSpace__ecere__com__Class * class, void * object, ...)
2271 __builtin_va_start(args, object);
2272 __ecereNameSpace__ecere__com__PrintStdArgsToBuffer(buffer, sizeof buffer, class, object, args);
2273 __builtin_va_end(args);
2277 extern int fputs(char * , void * stream);
2279 void __ecereNameSpace__ecere__com__Print(struct __ecereNameSpace__ecere__com__Class * class, void * object, ...)
2284 __builtin_va_start(args, object);
2285 __ecereNameSpace__ecere__com__PrintStdArgsToBuffer(buffer, sizeof buffer, class, object, args);
2286 __builtin_va_end(args);
2287 fputs(buffer, (bsl_stdout()));
2290 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DefinedExpression;
2292 struct __ecereNameSpace__ecere__com__DefinedExpression;
2294 extern struct __ecereNameSpace__ecere__com__DefinedExpression * __ecereNameSpace__ecere__com__eSystem_RegisterDefine(char * name, char * value, struct __ecereNameSpace__ecere__com__Instance * module, int declMode);
2296 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
2298 struct __ecereNameSpace__ecere__com__NameSpace
2301 struct __ecereNameSpace__ecere__com__NameSpace * btParent;
2302 struct __ecereNameSpace__ecere__com__NameSpace * left;
2303 struct __ecereNameSpace__ecere__com__NameSpace * right;
2305 struct __ecereNameSpace__ecere__com__NameSpace * parent;
2306 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
2307 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
2308 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
2309 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
2312 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
2314 struct __ecereNameSpace__ecere__com__Module
2316 struct __ecereNameSpace__ecere__com__Instance * application;
2317 struct __ecereNameSpace__ecere__sys__OldList classes;
2318 struct __ecereNameSpace__ecere__sys__OldList defines;
2319 struct __ecereNameSpace__ecere__sys__OldList functions;
2320 struct __ecereNameSpace__ecere__sys__OldList modules;
2321 struct __ecereNameSpace__ecere__com__Instance * prev;
2322 struct __ecereNameSpace__ecere__com__Instance * next;
2327 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
2328 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
2331 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
2333 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);
2335 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
2337 struct __ecereNameSpace__ecere__com__GlobalFunction;
2339 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);
2341 void __ecereRegisterModule_dataTypes(struct __ecereNameSpace__ecere__com__Instance * module)
2343 struct __ecereNameSpace__ecere__com__Class * class;
2345 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::MAXBYTE", "0xff", module, 4);
2346 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::MAXWORD", "0xffff", module, 4);
2347 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::MININT", "((int)0x80000000)", module, 4);
2348 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::MAXINT", "((int)0x7fffffff)", module, 4);
2349 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::MININT64", "((long long)0x8000000000000000LL)", module, 4);
2350 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::MAXINT64", "((long long)0x7fffffffffffffffLL)", module, 4);
2351 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::MAXDWORD", "0xffffffff", module, 4);
2352 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::MAXQWORD", "0xffffffffffffffffLL", module, 4);
2353 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::MINFLOAT", "((float)1.17549435082228750e-38)", module, 4);
2354 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::MAXFLOAT", "((float)3.40282346638528860e+38)", module, 4);
2355 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::MINDOUBLE", "((double)2.2250738585072014e-308)", module, 4);
2356 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::MAXDOUBLE", "((double)1.7976931348623158e+308)", module, 4);
2357 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::FORMAT64HEXLL", "(GetRuntimePlatform() == win32) ? \"0x%I64XLL\" : \"0x%llXLL\"", module, 4);
2358 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::FORMAT64HEX", "(GetRuntimePlatform() == win32) ? \"0x%I64X\" : \"0x%llX\"", module, 4);
2359 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::FORMAT64DLL", "(GetRuntimePlatform() == win32) ? \"%I64dLL\" : \"%lldLL\"", module, 4);
2360 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::FORMAT64D", "(GetRuntimePlatform() == win32) ? \"%I64d\" : \"%lld\"", module, 4);
2361 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::FORMAT64U", "(GetRuntimePlatform() == win32) ? \"%I64u\" : \"%llu\"", module, 4);
2362 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::IOChannel", 0, 0, 0, 0, 0, module, 4, 1);
2363 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
2364 __ecereClass___ecereNameSpace__ecere__com__IOChannel = class;
2365 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "WriteData", "unsigned int WriteData(byte * data, unsigned int numBytes)", 0, 1);
2366 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "ReadData", "unsigned int ReadData(byte * data, unsigned int numBytes)", 0, 1);
2367 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Get", "void Get(typed_object * data)", __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Get, 1);
2368 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Put", "void Put(typed_object data)", __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Put, 1);
2369 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Serialize", "void Serialize(typed_object data)", __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize, 1);
2370 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Unserialize", "void Unserialize(typed_object * data)", __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize, 1);
2371 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);
2372 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
2373 __ecereClass___ecereNameSpace__ecere__com__SerialBuffer = class;
2374 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "WriteData", 0, __ecereMethod___ecereNameSpace__ecere__com__SerialBuffer_WriteData, 1);
2375 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "ReadData", 0, __ecereMethod___ecereNameSpace__ecere__com__SerialBuffer_ReadData, 1);
2376 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Free", "void Free()", __ecereMethod___ecereNameSpace__ecere__com__SerialBuffer_Free, 1);
2377 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_buffer", "byte *", 4, 4, 1);
2378 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "count", "uint", 4, 4, 1);
2379 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_size", "uint", 4, 4, 1);
2380 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "pos", "uint", 4, 4, 1);
2381 __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);
2382 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
2383 __ecereProp___ecereNameSpace__ecere__com__SerialBuffer_buffer = __ecerePropM___ecereNameSpace__ecere__com__SerialBuffer_buffer, __ecerePropM___ecereNameSpace__ecere__com__SerialBuffer_buffer = (void *)0;
2384 __ecerePropM___ecereNameSpace__ecere__com__SerialBuffer_size = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "size", "unsigned int", __ecereProp___ecereNameSpace__ecere__com__SerialBuffer_Set_size, __ecereProp___ecereNameSpace__ecere__com__SerialBuffer_Get_size, 1);
2385 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
2386 __ecereProp___ecereNameSpace__ecere__com__SerialBuffer_size = __ecerePropM___ecereNameSpace__ecere__com__SerialBuffer_size, __ecerePropM___ecereNameSpace__ecere__com__SerialBuffer_size = (void *)0;
2387 __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);
2388 __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);
2389 __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);
2390 __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);
2391 __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);
2392 __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);
2393 __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);
2394 __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);
2395 __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);
2396 __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);
2397 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::StaticString", 0, sizeof(struct __ecereNameSpace__ecere__com__StaticString), 0, 0, 0, module, 4, 1);
2398 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
2399 __ecereClass___ecereNameSpace__ecere__com__StaticString = class;
2400 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnCompare", 0, __ecereMethod___ecereNameSpace__ecere__com__StaticString_OnCompare, 1);
2401 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnFree", 0, __ecereMethod___ecereNameSpace__ecere__com__StaticString_OnFree, 1);
2402 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__com__StaticString_OnGetString, 1);
2403 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnSerialize", 0, __ecereMethod___ecereNameSpace__ecere__com__StaticString_OnSerialize, 1);
2404 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnUnserialize", 0, __ecereMethod___ecereNameSpace__ecere__com__StaticString_OnUnserialize, 1);
2405 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "string", "char[1]", 1, 1, 1);
2406 __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);
2407 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::InitializeDataTypes1", "void ecere::com::InitializeDataTypes1(ecere::com::Module module)", __ecereNameSpace__ecere__com__InitializeDataTypes1, module, 4);
2408 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::InitializeDataTypes", "void ecere::com::InitializeDataTypes(ecere::com::Module module)", __ecereNameSpace__ecere__com__InitializeDataTypes, module, 4);
2409 __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);
2410 __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);
2411 __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);
2412 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::PrintString", "char * ecere::com::PrintString(typed_object object, ...)", __ecereNameSpace__ecere__com__PrintString, module, 4);
2413 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::PrintLnString", "char * ecere::com::PrintLnString(typed_object object, ...)", __ecereNameSpace__ecere__com__PrintLnString, module, 4);
2414 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::PrintLn", "void ecere::com::PrintLn(typed_object object, ...)", __ecereNameSpace__ecere__com__PrintLn, module, 4);
2415 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::Print", "void ecere::com::Print(typed_object object, ...)", __ecereNameSpace__ecere__com__Print, module, 4);
2418 void __ecereUnregisterModule_dataTypes(struct __ecereNameSpace__ecere__com__Instance * module)
2421 __ecerePropM___ecereNameSpace__ecere__com__SerialBuffer_buffer = (void *)0;
2422 __ecerePropM___ecereNameSpace__ecere__com__SerialBuffer_size = (void *)0;