diff include/qtd_core.h @ 248:7664de4a55e5

Fixed #23. QtD_QObjectEntity is not created dynamically for shell classes any more. Class initialization is now performed by static constructors. When wrapping QObjects returned from functions, their run-time types are now taken into account. QObjects are allocated on GC heap, a doubly-linked list is used to prevent them from been collected (arguably a better solution than allocating on C heap and adding GC ranges) Minor changes (including unnecessary).
author maxter
date Thu, 20 Aug 2009 14:47:17 +0000
parents 3aa118a9ae71
children 37eed70de029
line wrap: on
line diff
--- a/include/qtd_core.h	Fri Jul 31 11:05:22 2009 +0000
+++ b/include/qtd_core.h	Thu Aug 20 14:47:17 2009 +0000
@@ -21,16 +21,16 @@
 #endif
 
 #ifdef CPP_SHARED
-  #define QTD_EXPORT(TYPE, NAME, ARGS)      \
+  #define QTD_EXPORT(TYPE, NAME, ARGS) \
     extern "C" typedef TYPE (*pf_##NAME)ARGS; \
     extern "C" pf_##NAME qtd_get_##NAME();
   #define QTD_EXPORT_VAR(NAME) \
     pf_##NAME m_##NAME;        \
     extern "C" DLL_PUBLIC pf_##NAME qtd_get_##NAME() { return m_##NAME; }
-  #define QTD_EXPORT_VAR_SET(NAME, VALUE) \
+#define QTD_EXPORT_VAR_SET(NAME, VALUE) \
     m_##NAME = (pf_##NAME) VALUE
 #else
-  #define QTD_EXPORT(TYPE, NAME, ARGS)      \
+  #define QTD_EXPORT(TYPE, NAME, ARGS) \
     extern "C" TYPE NAME ARGS;
 #endif
 
@@ -46,7 +46,23 @@
     void* ptr;
 };
 
-const uint USER_DATA_ID = 0;
+enum QtdObjectFlags
+{
+    qNone,
+    qNativeOwnership            = 0x01,
+    qDOwnership                 = 0x02
+    //gcManaged                 = 0x04
+};
+
+class QtD_Entity
+{
+public:
+    void* dId;
+
+    QtD_Entity(void* id) : dId(id)
+    {
+    }
+};
 
 #define Array DArray
 
@@ -54,15 +70,17 @@
 typedef void (*pfunc_abstr)();
 #endif
 
-QTD_EXPORT(void, _d_toUtf8, (const unsigned short* arr, uint size, void* str))
-QTD_EXPORT(void, __qtd_dummy, ())
+QTD_EXPORT(void, qtd_toUtf8, (const unsigned short* arr, uint size, void* str))
+QTD_EXPORT(void, qtd_dummy, ())
 
 #ifdef CPP_SHARED
-#define _d_toUtf8 qtd_get__d_toUtf8()
-#define __qtd_dummy qtd_get___qtd_dummy()
+#define qtd_toUtf8 qtd_get_qtd_toUtf8()
+#define qtd_dummy qtd_get_qtd_dummy()
 #endif
 
 extern "C" QModelIndex qtd_to_QModelIndex(QModelIndexAccessor mia);
 extern "C" QModelIndexAccessor qtd_from_QModelIndex(const QModelIndex &index);
 
+
+
 #endif // QTD_CORE_H