annotate d2/qtd/QMetaTypeImpl.d @ 361:beaf4a2974d7

Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
author Max Samukha <maxter@maxter.com>
date Wed, 09 Jun 2010 11:08:56 +0300
parents
children bcbfffef4f9e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
361
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
1 module qtd.QMetaTypeImpl;
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
2
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
3 import
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
4 qt.core.Qt,
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
5 qt.core.QDataStream,
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
6 qtd.QtdObject;
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
7
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
8 // TODO: remove
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
9 import std.stdio;
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
10
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
11 private struct DArrayToC
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
12 {
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
13 void[] array;
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
14 }
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
15
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
16 /**
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
17 */
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
18 template MetaTypeOps(T)
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
19 {
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
20 static void* construct(void* copy)
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
21 {
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
22 static assert (is(T : Object));
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
23 return cast(void*)new T(cast(T)copy);
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
24 }
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
25
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
26 static void destroy(void* ptr)
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
27 {
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
28 (cast(T)ptr).dispose();
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
29 }
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
30 }
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
31
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
32 /**
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
33 */
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
34 template MetaTypeStreamOps(T)
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
35 {
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
36 void save(QDataStream ds, const void* data)
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
37 {
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
38 writeln("Saving ", ds.__nativeId, " ", data);
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
39 }
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
40
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
41 void load(QDataStream ds, void* data)
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
42 {
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
43 writeln("Loading ", ds.__nativeId, " ", data);
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
44 }
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
45 }
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
46
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
47 /**
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
48 */
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
49 int qRegisterMetaType(T, alias ops = MetaTypeOps)(string name = null)
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
50 {
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
51 if (!name.length)
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
52 name = typeid(T).toString; //TODO: use compile time full name?
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
53
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
54 alias ops!T.construct construct;
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
55 alias ops!T.destroy destroy;
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
56
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
57 // TODO: only GNU C++
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
58 extern(C) static void ctorShim()
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
59 {
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
60 asm
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
61 {
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
62 naked;
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
63 push EBP;
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
64 mov EBP, ESP;
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
65 mov EAX, 0x8[EBP];
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
66 call construct;
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
67 leave;
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
68 ret;
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
69 }
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
70 }
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
71
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
72 extern(C) static void dtorShim()
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
73 {
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
74 asm
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
75 {
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
76 naked;
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
77 push EBP;
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
78 mov EBP, ESP;
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
79 mov EAX, 0x8[EBP];
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
80 call destroy;
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
81 leave;
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
82 ret;
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
83 }
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
84 }
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
85
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
86 return qtd_registerType(toStringz(name), &dtorShim, &ctorShim);
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
87 }
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
88
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
89
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
90 // COMPILER BUG: cannot put this inside qRegisterMetaTypeStreamOperators
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
91 // COMPILER BUG 2: cannot use extern(C) with templated functions: extern(C) void foo(T)(){}
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
92 private template streamOpShim(alias op)
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
93 {
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
94 extern(C) void streamOpShim()
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
95 {
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
96 asm
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
97 {
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
98 naked;
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
99 push EBP;
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
100 mov EBP, ESP;
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
101 mov EAX, 0x8[EBP];
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
102 push EAX;
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
103 mov EAX, 0xC[EBP];
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
104 call op;
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
105 leave;
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
106 ret;
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
107 }
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
108 }
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
109 }
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
110
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
111 /**
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
112 */
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
113 void qRegisterMetaTypeStreamOperators(T, alias ops = MetaTypeStreamOps)(string name = null)
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
114 {
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
115 if (!name.length)
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
116 name = typeid(T).toString;
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
117
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
118 static void save(void* ds, const void* data)
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
119 {
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
120 scope dataStream = new QDataStream(ds, QtdObjectFlags.nativeOwnership);
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
121 ops!T.save(dataStream, data);
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
122 }
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
123
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
124 static void load(void* ds, void* data)
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
125 {
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
126 scope dataStream = new QDataStream(ds, QtdObjectFlags.nativeOwnership);
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
127 ops!T.load(dataStream, data);
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
128 }
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
129
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
130 qtd_registerStreamOperators(toStringz(name), &streamOpShim!save, &streamOpShim!load);
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
131 }
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
132
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
133 /**
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
134 */
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
135 private extern(C)
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
136 {
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
137 void qtd_registerStreamOperators(in char *typeName, VoidFunc saveOp, VoidFunc loadOp);
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
138 int qtd_registerType(in char* namePtr, VoidFunc ctor, VoidFunc dtor);
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
139 int qtd_QMetaType_type_nativepointerchar(in char* typeName0);
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
140 }
beaf4a2974d7 Autogeneration of QMetaType. First attempts at fixing qRegisterMetaType etc
Max Samukha <maxter@maxter.com>
parents:
diff changeset
141