Mercurial > projects > qtd
annotate d1/qtd/ArrayOpsPrimitive.d @ 367:f69341b40588
Removed dependencies on qtd.Traits
author | Max Samukha <maxter@spambox.com> |
---|---|
date | Thu, 24 Jun 2010 13:47:30 +0300 |
parents | 96a75b1e5b26 |
children |
rev | line source |
---|---|
1 | 1 /** |
2 * | |
3 * Copyright: Copyright QtD Team, 2008-2009 | |
4 * License: <a href="http://www.boost.org/LICENSE_1_0.txt>Boost License 1.0</a> | |
5 * | |
6 * Copyright QtD Team, 2008-2009 | |
7 * Distributed under the Boost Software License, Version 1.0. | |
8 * (See accompanying file boost-license-1.0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
9 * | |
10 */ | |
11 | |
12 module qt.qtd.ArrayOpsPrimitive; | |
13 | |
14 import qt.QGlobal; | |
15 | |
16 // int | |
17 private extern(C) void qtd_allocate_int_array(int[]* arr, size_t len) | |
18 { | |
19 *arr = new int[len]; | |
20 } | |
21 | |
22 private extern(C) void qtd_assign_int_array_element(int[]* arr, size_t pos, int elem) | |
23 { | |
24 (*arr)[pos] = elem; | |
25 } | |
26 | |
27 private extern(C) void qtd_get_int_from_array(int* arr, size_t pos, int* elem) | |
28 { | |
29 *elem = arr[pos]; | |
30 } | |
31 | |
32 // uint | |
33 private extern(C) void qtd_allocate_uint_array(int[]* arr, size_t len) | |
34 { | |
35 *arr = new int[len]; | |
36 } | |
37 | |
38 private extern(C) void qtd_assign_uint_array_element(int[]* arr, size_t pos, uint elem) | |
39 { | |
40 (*arr)[pos] = elem; | |
41 } | |
42 | |
43 private extern(C) void qtd_get_uint_from_array(uint* arr, size_t pos, uint* elem) | |
44 { | |
45 *elem = arr[pos]; | |
46 } | |
47 | |
48 // double | |
49 private extern(C) void qtd_allocate_double_array(double[]* arr, size_t len) | |
50 { | |
51 *arr = new double[len]; | |
52 } | |
53 | |
54 private extern(C) void qtd_assign_double_array_element(double[]* arr, size_t pos, double elem) | |
55 { | |
56 (*arr)[pos] = elem; | |
57 } | |
58 | |
59 private extern(C) void qtd_get_double_from_array(double* arr, size_t pos, double* elem) | |
60 { | |
61 *elem = arr[pos]; | |
62 } | |
63 | |
64 // string | |
65 private extern(C) void qtd_allocate_string_array(string[]* arr, size_t len) | |
66 { | |
67 *arr = new string[len]; | |
68 } | |
69 | |
70 private extern(C) void qtd_assign_string_array_element(string[]* arr, size_t pos, string* elem) | |
71 { | |
72 } | |
73 | |
74 private extern(C) void* qtd_string_from_array(string[]* arr, size_t pos) | |
75 { | |
76 return &((*arr)[pos]); | |
77 } | |
33
cf8a415f3f32
gui package is fully wrapped now. lots of fixes in the generator
eldar
parents:
1
diff
changeset
|
78 /* |
1 | 79 private extern(C) void qtd_get_string_from_array(string* arr, size_t pos, char** elem, size_t* elem_size) |
80 { | |
81 *elem = arr[pos].ptr; | |
82 *elem_size = arr[pos].length; | |
83 } | |
33
cf8a415f3f32
gui package is fully wrapped now. lots of fixes in the generator
eldar
parents:
1
diff
changeset
|
84 */ |
cf8a415f3f32
gui package is fully wrapped now. lots of fixes in the generator
eldar
parents:
1
diff
changeset
|
85 |
cf8a415f3f32
gui package is fully wrapped now. lots of fixes in the generator
eldar
parents:
1
diff
changeset
|
86 private extern(C) void qtd_get_string_from_array(string* arr, size_t pos, string* elem) |
cf8a415f3f32
gui package is fully wrapped now. lots of fixes in the generator
eldar
parents:
1
diff
changeset
|
87 { |
cf8a415f3f32
gui package is fully wrapped now. lots of fixes in the generator
eldar
parents:
1
diff
changeset
|
88 *elem = arr[pos]; |
cf8a415f3f32
gui package is fully wrapped now. lots of fixes in the generator
eldar
parents:
1
diff
changeset
|
89 } |
1 | 90 |
125 | 91 version(cpp_shared) |
1 | 92 { |
93 extern (C) void qtd_core_ArrayOps_initCallBacks(void* callbacks); | |
94 | |
95 static this() { | |
96 void*[13] callbacks; | |
97 | |
98 callbacks[0] = &qtd_allocate_int_array; | |
99 callbacks[1] = &qtd_assign_int_array_element; | |
100 callbacks[2] = &qtd_get_int_from_array; | |
101 | |
102 callbacks[3] = &qtd_allocate_uint_array; | |
103 callbacks[4] = &qtd_assign_uint_array_element; | |
104 callbacks[5] = &qtd_get_uint_from_array; | |
105 | |
106 callbacks[6] = &qtd_allocate_double_array; | |
107 callbacks[7] = &qtd_assign_double_array_element; | |
108 callbacks[8] = &qtd_get_double_from_array; | |
109 | |
110 callbacks[9] = &qtd_allocate_string_array; | |
111 callbacks[10] = &qtd_assign_string_array_element; | |
112 callbacks[11] = &qtd_string_from_array; | |
113 callbacks[12] = &qtd_get_string_from_array; | |
114 | |
115 qtd_core_ArrayOps_initCallBacks(callbacks.ptr); | |
116 } | |
117 } |