311
|
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 }
|
|
78 /*
|
|
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 }
|
|
84 */
|
|
85
|
|
86 private extern(C) void qtd_get_string_from_array(string* arr, size_t pos, string* elem)
|
|
87 {
|
|
88 *elem = arr[pos];
|
|
89 }
|
|
90
|
|
91 version(cpp_shared)
|
|
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 } |