annotate generator/typesystem_core-java.java @ 7:b8a79f9fba5a

More fixes and cleanups in CMake build script.
author SokoL_SD
date Thu, 14 May 2009 08:36:04 +0000
parents e78566595089
children d5a6b6269f44
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
e78566595089 initial import
mandel
parents:
diff changeset
1 /****************************************************************************
e78566595089 initial import
mandel
parents:
diff changeset
2 **
e78566595089 initial import
mandel
parents:
diff changeset
3 ** Copyright (C) 1992-2008 Nokia. All rights reserved.
e78566595089 initial import
mandel
parents:
diff changeset
4 **
e78566595089 initial import
mandel
parents:
diff changeset
5 ** This file is part of Qt Jambi.
e78566595089 initial import
mandel
parents:
diff changeset
6 **
e78566595089 initial import
mandel
parents:
diff changeset
7 ** * Commercial Usage
e78566595089 initial import
mandel
parents:
diff changeset
8 * Licensees holding valid Qt Commercial licenses may use this file in
e78566595089 initial import
mandel
parents:
diff changeset
9 * accordance with the Qt Commercial License Agreement provided with the
e78566595089 initial import
mandel
parents:
diff changeset
10 * Software or, alternatively, in accordance with the terms contained in
e78566595089 initial import
mandel
parents:
diff changeset
11 * a written agreement between you and Nokia.
e78566595089 initial import
mandel
parents:
diff changeset
12 *
e78566595089 initial import
mandel
parents:
diff changeset
13 *
e78566595089 initial import
mandel
parents:
diff changeset
14 * GNU General Public License Usage
e78566595089 initial import
mandel
parents:
diff changeset
15 * Alternatively, this file may be used under the terms of the GNU
e78566595089 initial import
mandel
parents:
diff changeset
16 * General Public License versions 2.0 or 3.0 as published by the Free
e78566595089 initial import
mandel
parents:
diff changeset
17 * Software Foundation and appearing in the file LICENSE.GPL included in
e78566595089 initial import
mandel
parents:
diff changeset
18 * the packaging of this file. Please review the following information
e78566595089 initial import
mandel
parents:
diff changeset
19 * to ensure GNU General Public Licensing requirements will be met:
e78566595089 initial import
mandel
parents:
diff changeset
20 * http://www.fsf.org/licensing/licenses/info/GPLv2.html and
e78566595089 initial import
mandel
parents:
diff changeset
21 * http://www.gnu.org/copyleft/gpl.html. In addition, as a special
e78566595089 initial import
mandel
parents:
diff changeset
22 * exception, Nokia gives you certain additional rights. These rights
e78566595089 initial import
mandel
parents:
diff changeset
23 * are described in the Nokia Qt GPL Exception version 1.2, included in
e78566595089 initial import
mandel
parents:
diff changeset
24 * the file GPL_EXCEPTION.txt in this package.
e78566595089 initial import
mandel
parents:
diff changeset
25 *
e78566595089 initial import
mandel
parents:
diff changeset
26 * Qt for Windows(R) Licensees
e78566595089 initial import
mandel
parents:
diff changeset
27 * As a special exception, Nokia, as the sole copyright holder for Qt
e78566595089 initial import
mandel
parents:
diff changeset
28 * Designer, grants users of the Qt/Eclipse Integration plug-in the
e78566595089 initial import
mandel
parents:
diff changeset
29 * right for the Qt/Eclipse Integration to link to functionality
e78566595089 initial import
mandel
parents:
diff changeset
30 * provided by Qt Designer and its related libraries.
e78566595089 initial import
mandel
parents:
diff changeset
31 *
e78566595089 initial import
mandel
parents:
diff changeset
32 *
e78566595089 initial import
mandel
parents:
diff changeset
33 * If you are unsure which license is appropriate for your use, please
e78566595089 initial import
mandel
parents:
diff changeset
34 * contact the sales department at qt-sales@nokia.com.
e78566595089 initial import
mandel
parents:
diff changeset
35
e78566595089 initial import
mandel
parents:
diff changeset
36 **
e78566595089 initial import
mandel
parents:
diff changeset
37 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
e78566595089 initial import
mandel
parents:
diff changeset
38 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
e78566595089 initial import
mandel
parents:
diff changeset
39 **
e78566595089 initial import
mandel
parents:
diff changeset
40 ****************************************************************************/
e78566595089 initial import
mandel
parents:
diff changeset
41
e78566595089 initial import
mandel
parents:
diff changeset
42 package generator;
e78566595089 initial import
mandel
parents:
diff changeset
43
e78566595089 initial import
mandel
parents:
diff changeset
44 import qt.*;
e78566595089 initial import
mandel
parents:
diff changeset
45 import qt.core.*;
e78566595089 initial import
mandel
parents:
diff changeset
46
e78566595089 initial import
mandel
parents:
diff changeset
47 class QObject___ extends QObject {
e78566595089 initial import
mandel
parents:
diff changeset
48
e78566595089 initial import
mandel
parents:
diff changeset
49 // list of QObjects references to prevent them from garbage collecting if they are managed by Qt
e78566595089 initial import
mandel
parents:
diff changeset
50 private static QObject[] __gc_ref_list;
e78566595089 initial import
mandel
parents:
diff changeset
51
e78566595089 initial import
mandel
parents:
diff changeset
52 // this flag controls whether QObject is managed by D's GC, or it has a parent and therefore managed by Qt
e78566595089 initial import
mandel
parents:
diff changeset
53 private bool __gc_managed = true;
e78566595089 initial import
mandel
parents:
diff changeset
54
e78566595089 initial import
mandel
parents:
diff changeset
55 // this flag needs to be set false when QObject is deleted from inside Qt so when deleting it from D it won't delete C++ object
e78566595089 initial import
mandel
parents:
diff changeset
56 public bool __no_real_delete = false;
e78566595089 initial import
mandel
parents:
diff changeset
57 }// class
e78566595089 initial import
mandel
parents:
diff changeset
58
e78566595089 initial import
mandel
parents:
diff changeset
59 abstract class QAbstractItemModel___ extends QAbstractItemModel {
e78566595089 initial import
mandel
parents:
diff changeset
60 /* private native boolean setData_native(long id, int row, int col, Object value, int role);
e78566595089 initial import
mandel
parents:
diff changeset
61
e78566595089 initial import
mandel
parents:
diff changeset
62 public final boolean setData(int row, int col, Object value) {
e78566595089 initial import
mandel
parents:
diff changeset
63 return setData_native(nativeId(), row, col, value, qt.core.Qt.ItemDataRole.DisplayRole);
e78566595089 initial import
mandel
parents:
diff changeset
64 }
e78566595089 initial import
mandel
parents:
diff changeset
65
e78566595089 initial import
mandel
parents:
diff changeset
66 public final boolean setData(int row, int col, Object value, int role) {
e78566595089 initial import
mandel
parents:
diff changeset
67 return setData_native(nativeId(), row, col, value, role);
e78566595089 initial import
mandel
parents:
diff changeset
68 }
e78566595089 initial import
mandel
parents:
diff changeset
69
e78566595089 initial import
mandel
parents:
diff changeset
70 private native Object data_native(long id, int row, int col, int role);
e78566595089 initial import
mandel
parents:
diff changeset
71
e78566595089 initial import
mandel
parents:
diff changeset
72 public final Object data(int row, int col, int role) {
e78566595089 initial import
mandel
parents:
diff changeset
73 return data_native(nativeId(), row, col, role);
e78566595089 initial import
mandel
parents:
diff changeset
74 }
e78566595089 initial import
mandel
parents:
diff changeset
75
e78566595089 initial import
mandel
parents:
diff changeset
76 public final Object data(int row, int col) {
e78566595089 initial import
mandel
parents:
diff changeset
77 return data_native(nativeId(), row, col, Qt.ItemDataRole.DisplayRole);
e78566595089 initial import
mandel
parents:
diff changeset
78 }*/
e78566595089 initial import
mandel
parents:
diff changeset
79 }// class
e78566595089 initial import
mandel
parents:
diff changeset
80
e78566595089 initial import
mandel
parents:
diff changeset
81 class QTimer___ extends QTimer {
e78566595089 initial import
mandel
parents:
diff changeset
82 static private class QSingleShotTimer extends QObject {
e78566595089 initial import
mandel
parents:
diff changeset
83 private int timerId = -1;
e78566595089 initial import
mandel
parents:
diff changeset
84 public Signal0 timeout = new Signal0();
e78566595089 initial import
mandel
parents:
diff changeset
85
e78566595089 initial import
mandel
parents:
diff changeset
86 public QSingleShotTimer(int msec, QObject obj, String method) {
e78566595089 initial import
mandel
parents:
diff changeset
87 super(obj);
e78566595089 initial import
mandel
parents:
diff changeset
88 timeout.connect(obj, method);
e78566595089 initial import
mandel
parents:
diff changeset
89 timerId = startTimer(msec);
e78566595089 initial import
mandel
parents:
diff changeset
90 }
e78566595089 initial import
mandel
parents:
diff changeset
91
e78566595089 initial import
mandel
parents:
diff changeset
92 protected void disposed() {
e78566595089 initial import
mandel
parents:
diff changeset
93 if (timerId > 0)
e78566595089 initial import
mandel
parents:
diff changeset
94 killTimer(timerId);
e78566595089 initial import
mandel
parents:
diff changeset
95 super.disposed();
e78566595089 initial import
mandel
parents:
diff changeset
96 }
e78566595089 initial import
mandel
parents:
diff changeset
97
e78566595089 initial import
mandel
parents:
diff changeset
98 protected void timerEvent(QTimerEvent e) {
e78566595089 initial import
mandel
parents:
diff changeset
99 if (timerId > 0)
e78566595089 initial import
mandel
parents:
diff changeset
100 killTimer(timerId);
e78566595089 initial import
mandel
parents:
diff changeset
101 timerId = -1;
e78566595089 initial import
mandel
parents:
diff changeset
102 timeout.emit();
e78566595089 initial import
mandel
parents:
diff changeset
103 disposeLater();
e78566595089 initial import
mandel
parents:
diff changeset
104 }
e78566595089 initial import
mandel
parents:
diff changeset
105 }
e78566595089 initial import
mandel
parents:
diff changeset
106
e78566595089 initial import
mandel
parents:
diff changeset
107 public static void singleShot(int msec, QObject obj, String method) {
e78566595089 initial import
mandel
parents:
diff changeset
108 new QSingleShotTimer(msec, obj, method);
e78566595089 initial import
mandel
parents:
diff changeset
109 }
e78566595089 initial import
mandel
parents:
diff changeset
110 }// class
e78566595089 initial import
mandel
parents:
diff changeset
111
e78566595089 initial import
mandel
parents:
diff changeset
112 class QCoreApplication___ extends QCoreApplication {
e78566595089 initial import
mandel
parents:
diff changeset
113
e78566595089 initial import
mandel
parents:
diff changeset
114 protected static QCoreApplication m_instance = null;
e78566595089 initial import
mandel
parents:
diff changeset
115
e78566595089 initial import
mandel
parents:
diff changeset
116 this(char[][] args)
e78566595089 initial import
mandel
parents:
diff changeset
117 {
e78566595089 initial import
mandel
parents:
diff changeset
118 // if (m_instance != null)
e78566595089 initial import
mandel
parents:
diff changeset
119 // throw new RuntimeException("QCoreApplication can only be initialized once");
e78566595089 initial import
mandel
parents:
diff changeset
120
e78566595089 initial import
mandel
parents:
diff changeset
121 argc = args.length;
e78566595089 initial import
mandel
parents:
diff changeset
122 argv = toStringzArray(args);
e78566595089 initial import
mandel
parents:
diff changeset
123 this(&argc, argv);
e78566595089 initial import
mandel
parents:
diff changeset
124
e78566595089 initial import
mandel
parents:
diff changeset
125 // m_instance.aboutToQuit.connect(m_instance, "disposeOfMyself()");
e78566595089 initial import
mandel
parents:
diff changeset
126 }
e78566595089 initial import
mandel
parents:
diff changeset
127
e78566595089 initial import
mandel
parents:
diff changeset
128 private int argc;
e78566595089 initial import
mandel
parents:
diff changeset
129 private char **argv;
e78566595089 initial import
mandel
parents:
diff changeset
130 }// class
e78566595089 initial import
mandel
parents:
diff changeset
131
e78566595089 initial import
mandel
parents:
diff changeset
132 class QTranslator___ extends QTranslator {
e78566595089 initial import
mandel
parents:
diff changeset
133 public final bool load(ubyte[] data) {
e78566595089 initial import
mandel
parents:
diff changeset
134 return load(data.ptr, data.length);
e78566595089 initial import
mandel
parents:
diff changeset
135 }
e78566595089 initial import
mandel
parents:
diff changeset
136 }// class
e78566595089 initial import
mandel
parents:
diff changeset
137
e78566595089 initial import
mandel
parents:
diff changeset
138 class QProcess___ extends QProcess {
e78566595089 initial import
mandel
parents:
diff changeset
139
e78566595089 initial import
mandel
parents:
diff changeset
140 public static class DetachedProcessInfo {
e78566595089 initial import
mandel
parents:
diff changeset
141 public DetachedProcessInfo(boolean success, long pid) {
e78566595089 initial import
mandel
parents:
diff changeset
142 this.success = success;
e78566595089 initial import
mandel
parents:
diff changeset
143 this.pid = pid;
e78566595089 initial import
mandel
parents:
diff changeset
144 }
e78566595089 initial import
mandel
parents:
diff changeset
145
e78566595089 initial import
mandel
parents:
diff changeset
146 public boolean success;
e78566595089 initial import
mandel
parents:
diff changeset
147 public long pid;
e78566595089 initial import
mandel
parents:
diff changeset
148 }
e78566595089 initial import
mandel
parents:
diff changeset
149
e78566595089 initial import
mandel
parents:
diff changeset
150 public static DetachedProcessInfo startDetached(String program, java.util.List<String> arguments, String workingDirectory) {
e78566595089 initial import
mandel
parents:
diff changeset
151 QNativePointer pid = new QNativePointer(QNativePointer.Type.Long);
e78566595089 initial import
mandel
parents:
diff changeset
152 boolean success = startDetached(program, arguments, workingDirectory, pid);
e78566595089 initial import
mandel
parents:
diff changeset
153 return new DetachedProcessInfo(success, pid.longValue());
e78566595089 initial import
mandel
parents:
diff changeset
154 }
e78566595089 initial import
mandel
parents:
diff changeset
155 }// class
e78566595089 initial import
mandel
parents:
diff changeset
156
e78566595089 initial import
mandel
parents:
diff changeset
157 class QDataStream___ extends QDataStream {
e78566595089 initial import
mandel
parents:
diff changeset
158
e78566595089 initial import
mandel
parents:
diff changeset
159 public final bool readBoolean() {
e78566595089 initial import
mandel
parents:
diff changeset
160 bool res;
e78566595089 initial import
mandel
parents:
diff changeset
161 operator_shift_right_boolean(&res);
e78566595089 initial import
mandel
parents:
diff changeset
162 return res;
e78566595089 initial import
mandel
parents:
diff changeset
163 }
e78566595089 initial import
mandel
parents:
diff changeset
164
e78566595089 initial import
mandel
parents:
diff changeset
165 public final byte readByte() {
e78566595089 initial import
mandel
parents:
diff changeset
166 byte res;
e78566595089 initial import
mandel
parents:
diff changeset
167 operator_shift_right_byte(&res);
e78566595089 initial import
mandel
parents:
diff changeset
168 return res;
e78566595089 initial import
mandel
parents:
diff changeset
169 }
e78566595089 initial import
mandel
parents:
diff changeset
170
e78566595089 initial import
mandel
parents:
diff changeset
171 public final short readShort() {
e78566595089 initial import
mandel
parents:
diff changeset
172 short res;
e78566595089 initial import
mandel
parents:
diff changeset
173 operator_shift_right_short(&res);
e78566595089 initial import
mandel
parents:
diff changeset
174 return res;
e78566595089 initial import
mandel
parents:
diff changeset
175 }
e78566595089 initial import
mandel
parents:
diff changeset
176
e78566595089 initial import
mandel
parents:
diff changeset
177 public final int readInt() {
e78566595089 initial import
mandel
parents:
diff changeset
178 int res;
e78566595089 initial import
mandel
parents:
diff changeset
179 operator_shift_right_int(&res);
e78566595089 initial import
mandel
parents:
diff changeset
180 return res;
e78566595089 initial import
mandel
parents:
diff changeset
181 }
e78566595089 initial import
mandel
parents:
diff changeset
182
e78566595089 initial import
mandel
parents:
diff changeset
183 public final long readLong() {
e78566595089 initial import
mandel
parents:
diff changeset
184 long res;
e78566595089 initial import
mandel
parents:
diff changeset
185 operator_shift_right_long(&res);
e78566595089 initial import
mandel
parents:
diff changeset
186 return res;
e78566595089 initial import
mandel
parents:
diff changeset
187 }
e78566595089 initial import
mandel
parents:
diff changeset
188
e78566595089 initial import
mandel
parents:
diff changeset
189 public final ushort readChar() {
e78566595089 initial import
mandel
parents:
diff changeset
190 ushort res;
e78566595089 initial import
mandel
parents:
diff changeset
191 operator_shift_right_char(&res);
e78566595089 initial import
mandel
parents:
diff changeset
192 return res;
e78566595089 initial import
mandel
parents:
diff changeset
193 }
e78566595089 initial import
mandel
parents:
diff changeset
194
e78566595089 initial import
mandel
parents:
diff changeset
195 public final float readFloat() {
e78566595089 initial import
mandel
parents:
diff changeset
196 float res;
e78566595089 initial import
mandel
parents:
diff changeset
197 operator_shift_right_float(&res);
e78566595089 initial import
mandel
parents:
diff changeset
198 return res;
e78566595089 initial import
mandel
parents:
diff changeset
199 }
e78566595089 initial import
mandel
parents:
diff changeset
200
e78566595089 initial import
mandel
parents:
diff changeset
201 public final double readDouble() {
e78566595089 initial import
mandel
parents:
diff changeset
202 double res;
e78566595089 initial import
mandel
parents:
diff changeset
203 operator_shift_right_double(&res);
e78566595089 initial import
mandel
parents:
diff changeset
204 return res;
e78566595089 initial import
mandel
parents:
diff changeset
205 }
e78566595089 initial import
mandel
parents:
diff changeset
206
e78566595089 initial import
mandel
parents:
diff changeset
207 public final QDataStream writeShort(short s) {
e78566595089 initial import
mandel
parents:
diff changeset
208 writeShort_char(s);
e78566595089 initial import
mandel
parents:
diff changeset
209 return this;
e78566595089 initial import
mandel
parents:
diff changeset
210 }
e78566595089 initial import
mandel
parents:
diff changeset
211 /*
e78566595089 initial import
mandel
parents:
diff changeset
212 private static extern(C) void qtd_QDataStream_readString_private(void* __this_nativeId);
e78566595089 initial import
mandel
parents:
diff changeset
213
e78566595089 initial import
mandel
parents:
diff changeset
214 private native void writeString_private(long nativeId, String string);
e78566595089 initial import
mandel
parents:
diff changeset
215
e78566595089 initial import
mandel
parents:
diff changeset
216 public final String readString() {
e78566595089 initial import
mandel
parents:
diff changeset
217 if (nativeId() == 0)
e78566595089 initial import
mandel
parents:
diff changeset
218 throw new QNoNativeResourcesException("Function call on incomplete object of type: " + getClass().getName());
e78566595089 initial import
mandel
parents:
diff changeset
219 return readString_private(nativeId());
e78566595089 initial import
mandel
parents:
diff changeset
220 }
e78566595089 initial import
mandel
parents:
diff changeset
221
e78566595089 initial import
mandel
parents:
diff changeset
222 public final void writeString(String string) {
e78566595089 initial import
mandel
parents:
diff changeset
223 if (nativeId() == 0)
e78566595089 initial import
mandel
parents:
diff changeset
224 throw new QNoNativeResourcesException("Function call on incomplete object of type: " + getClass().getName());
e78566595089 initial import
mandel
parents:
diff changeset
225 writeString_private(nativeId(), string);
e78566595089 initial import
mandel
parents:
diff changeset
226 }
e78566595089 initial import
mandel
parents:
diff changeset
227
e78566595089 initial import
mandel
parents:
diff changeset
228 private native int writeBytes(long id, byte buffer[], int length);
e78566595089 initial import
mandel
parents:
diff changeset
229
e78566595089 initial import
mandel
parents:
diff changeset
230 private native int readBytes(long id, byte buffer[], int length);
e78566595089 initial import
mandel
parents:
diff changeset
231
e78566595089 initial import
mandel
parents:
diff changeset
232 public final int writeBytes(byte buffer[]) {
e78566595089 initial import
mandel
parents:
diff changeset
233 return writeBytes(buffer, buffer.length);
e78566595089 initial import
mandel
parents:
diff changeset
234 }
e78566595089 initial import
mandel
parents:
diff changeset
235
e78566595089 initial import
mandel
parents:
diff changeset
236 public final int writeBytes(byte buffer[], int length) {
e78566595089 initial import
mandel
parents:
diff changeset
237 return writeBytes(nativeId(), buffer, length);
e78566595089 initial import
mandel
parents:
diff changeset
238 }
e78566595089 initial import
mandel
parents:
diff changeset
239
e78566595089 initial import
mandel
parents:
diff changeset
240 public final int readBytes(byte buffer[]) {
e78566595089 initial import
mandel
parents:
diff changeset
241 return readBytes(buffer, buffer.length);
e78566595089 initial import
mandel
parents:
diff changeset
242 }
e78566595089 initial import
mandel
parents:
diff changeset
243
e78566595089 initial import
mandel
parents:
diff changeset
244 public final int readBytes(byte buffer[], int length) {
e78566595089 initial import
mandel
parents:
diff changeset
245 return readBytes(nativeId(), buffer, length);
e78566595089 initial import
mandel
parents:
diff changeset
246 }
e78566595089 initial import
mandel
parents:
diff changeset
247 */
e78566595089 initial import
mandel
parents:
diff changeset
248 }// class
e78566595089 initial import
mandel
parents:
diff changeset
249
e78566595089 initial import
mandel
parents:
diff changeset
250 class QTextStream___ extends QTextStream {
e78566595089 initial import
mandel
parents:
diff changeset
251 /* public final void setCodec(String codecName) {
e78566595089 initial import
mandel
parents:
diff changeset
252 setCodec(QNativePointer.createCharPointer(codecName));
e78566595089 initial import
mandel
parents:
diff changeset
253 if (codec() != __rcCodec)
e78566595089 initial import
mandel
parents:
diff changeset
254 __rcCodec = null;
e78566595089 initial import
mandel
parents:
diff changeset
255 }
e78566595089 initial import
mandel
parents:
diff changeset
256
e78566595089 initial import
mandel
parents:
diff changeset
257 private QNativePointer srb = new QNativePointer(QNativePointer.Type.Byte, 32) {
e78566595089 initial import
mandel
parents:
diff changeset
258 {
e78566595089 initial import
mandel
parents:
diff changeset
259 setVerificationEnabled(false);
e78566595089 initial import
mandel
parents:
diff changeset
260 }
e78566595089 initial import
mandel
parents:
diff changeset
261 };
e78566595089 initial import
mandel
parents:
diff changeset
262
e78566595089 initial import
mandel
parents:
diff changeset
263 public final byte readByte() {
e78566595089 initial import
mandel
parents:
diff changeset
264 operator_shift_right_byte(srb);
e78566595089 initial import
mandel
parents:
diff changeset
265 return srb.byteValue();
e78566595089 initial import
mandel
parents:
diff changeset
266 }
e78566595089 initial import
mandel
parents:
diff changeset
267
e78566595089 initial import
mandel
parents:
diff changeset
268 public final short readShort() {
e78566595089 initial import
mandel
parents:
diff changeset
269 operator_shift_right_short(srb);
e78566595089 initial import
mandel
parents:
diff changeset
270 return srb.shortValue();
e78566595089 initial import
mandel
parents:
diff changeset
271 }
e78566595089 initial import
mandel
parents:
diff changeset
272
e78566595089 initial import
mandel
parents:
diff changeset
273 public final int readInt() {
e78566595089 initial import
mandel
parents:
diff changeset
274 operator_shift_right_int(srb);
e78566595089 initial import
mandel
parents:
diff changeset
275 return srb.intValue();
e78566595089 initial import
mandel
parents:
diff changeset
276 }
e78566595089 initial import
mandel
parents:
diff changeset
277
e78566595089 initial import
mandel
parents:
diff changeset
278 public final long readLong() {
e78566595089 initial import
mandel
parents:
diff changeset
279 operator_shift_right_long(srb);
e78566595089 initial import
mandel
parents:
diff changeset
280 return srb.longValue();
e78566595089 initial import
mandel
parents:
diff changeset
281 }
e78566595089 initial import
mandel
parents:
diff changeset
282
e78566595089 initial import
mandel
parents:
diff changeset
283 public final float readFloat() {
e78566595089 initial import
mandel
parents:
diff changeset
284 operator_shift_right_float(srb);
e78566595089 initial import
mandel
parents:
diff changeset
285 return srb.floatValue();
e78566595089 initial import
mandel
parents:
diff changeset
286 }
e78566595089 initial import
mandel
parents:
diff changeset
287
e78566595089 initial import
mandel
parents:
diff changeset
288 public final double readDouble() {
e78566595089 initial import
mandel
parents:
diff changeset
289 operator_shift_right_double(srb);
e78566595089 initial import
mandel
parents:
diff changeset
290 return srb.doubleValue();
e78566595089 initial import
mandel
parents:
diff changeset
291 }
e78566595089 initial import
mandel
parents:
diff changeset
292
e78566595089 initial import
mandel
parents:
diff changeset
293 public final QTextStream writeShort(short s) {
e78566595089 initial import
mandel
parents:
diff changeset
294 writeShort_char((char) s);
e78566595089 initial import
mandel
parents:
diff changeset
295 return this;
e78566595089 initial import
mandel
parents:
diff changeset
296 }
e78566595089 initial import
mandel
parents:
diff changeset
297
e78566595089 initial import
mandel
parents:
diff changeset
298 public final QTextStream writeChar(char c) {
e78566595089 initial import
mandel
parents:
diff changeset
299 writeShort_char(c);
e78566595089 initial import
mandel
parents:
diff changeset
300 return this;
e78566595089 initial import
mandel
parents:
diff changeset
301 }
e78566595089 initial import
mandel
parents:
diff changeset
302
e78566595089 initial import
mandel
parents:
diff changeset
303 public final char readChar() {
e78566595089 initial import
mandel
parents:
diff changeset
304 operator_shift_right_short(srb);
e78566595089 initial import
mandel
parents:
diff changeset
305 return srb.charValue();
e78566595089 initial import
mandel
parents:
diff changeset
306 }
e78566595089 initial import
mandel
parents:
diff changeset
307
e78566595089 initial import
mandel
parents:
diff changeset
308 public final String readString() {
e78566595089 initial import
mandel
parents:
diff changeset
309 return readString_native(nativeId());
e78566595089 initial import
mandel
parents:
diff changeset
310 }
e78566595089 initial import
mandel
parents:
diff changeset
311
e78566595089 initial import
mandel
parents:
diff changeset
312 public final void writeString(String string) {
e78566595089 initial import
mandel
parents:
diff changeset
313 writeString_native(nativeId(), string);
e78566595089 initial import
mandel
parents:
diff changeset
314 }
e78566595089 initial import
mandel
parents:
diff changeset
315
e78566595089 initial import
mandel
parents:
diff changeset
316 private final native String readString_native(long id);
e78566595089 initial import
mandel
parents:
diff changeset
317
e78566595089 initial import
mandel
parents:
diff changeset
318 private final native void writeString_native(long id, String string);
e78566595089 initial import
mandel
parents:
diff changeset
319 */
e78566595089 initial import
mandel
parents:
diff changeset
320 }// class
e78566595089 initial import
mandel
parents:
diff changeset
321
e78566595089 initial import
mandel
parents:
diff changeset
322 class QBitArray___ extends QBitArray {
e78566595089 initial import
mandel
parents:
diff changeset
323 /*
e78566595089 initial import
mandel
parents:
diff changeset
324 @qt.QtBlockedSlot
e78566595089 initial import
mandel
parents:
diff changeset
325 public final void xor(QBitArray other) {
e78566595089 initial import
mandel
parents:
diff changeset
326 operator_xor_assign(other);
e78566595089 initial import
mandel
parents:
diff changeset
327 }
e78566595089 initial import
mandel
parents:
diff changeset
328
e78566595089 initial import
mandel
parents:
diff changeset
329 @qt.QtBlockedSlot
e78566595089 initial import
mandel
parents:
diff changeset
330 public final void and(QBitArray other) {
e78566595089 initial import
mandel
parents:
diff changeset
331 operator_and_assign(other);
e78566595089 initial import
mandel
parents:
diff changeset
332 }
e78566595089 initial import
mandel
parents:
diff changeset
333
e78566595089 initial import
mandel
parents:
diff changeset
334 @qt.QtBlockedSlot
e78566595089 initial import
mandel
parents:
diff changeset
335 public final void or(QBitArray other) {
e78566595089 initial import
mandel
parents:
diff changeset
336 operator_or_assign(other);
e78566595089 initial import
mandel
parents:
diff changeset
337 }
e78566595089 initial import
mandel
parents:
diff changeset
338
e78566595089 initial import
mandel
parents:
diff changeset
339 @qt.QtBlockedSlot
e78566595089 initial import
mandel
parents:
diff changeset
340 public final void set(QBitArray other) {
e78566595089 initial import
mandel
parents:
diff changeset
341 operator_assign(other);
e78566595089 initial import
mandel
parents:
diff changeset
342 }
e78566595089 initial import
mandel
parents:
diff changeset
343
e78566595089 initial import
mandel
parents:
diff changeset
344 @qt.QtBlockedSlot
e78566595089 initial import
mandel
parents:
diff changeset
345 public final QBitArray inverted() {
e78566595089 initial import
mandel
parents:
diff changeset
346 return operator_negate();
e78566595089 initial import
mandel
parents:
diff changeset
347 }
e78566595089 initial import
mandel
parents:
diff changeset
348 */
e78566595089 initial import
mandel
parents:
diff changeset
349 }// class
e78566595089 initial import
mandel
parents:
diff changeset
350
e78566595089 initial import
mandel
parents:
diff changeset
351 // hfr
e78566595089 initial import
mandel
parents:
diff changeset
352
e78566595089 initial import
mandel
parents:
diff changeset
353 class QDate___ extends QDate {
e78566595089 initial import
mandel
parents:
diff changeset
354
e78566595089 initial import
mandel
parents:
diff changeset
355 public final int weekNumber() {
e78566595089 initial import
mandel
parents:
diff changeset
356 return weekNumber(null);
e78566595089 initial import
mandel
parents:
diff changeset
357 }
e78566595089 initial import
mandel
parents:
diff changeset
358
e78566595089 initial import
mandel
parents:
diff changeset
359 public final int yearOfWeekNumber() {
e78566595089 initial import
mandel
parents:
diff changeset
360 int np;
e78566595089 initial import
mandel
parents:
diff changeset
361 weekNumber(&np);
e78566595089 initial import
mandel
parents:
diff changeset
362 return np;
e78566595089 initial import
mandel
parents:
diff changeset
363 }
e78566595089 initial import
mandel
parents:
diff changeset
364
e78566595089 initial import
mandel
parents:
diff changeset
365 }// class
e78566595089 initial import
mandel
parents:
diff changeset
366
e78566595089 initial import
mandel
parents:
diff changeset
367 class QDir___ extends QDir {
e78566595089 initial import
mandel
parents:
diff changeset
368 /*
e78566595089 initial import
mandel
parents:
diff changeset
369 @qt.QtBlockedSlot
e78566595089 initial import
mandel
parents:
diff changeset
370 public String at(int i) {
e78566595089 initial import
mandel
parents:
diff changeset
371 return operator_subscript(i);
e78566595089 initial import
mandel
parents:
diff changeset
372 }
e78566595089 initial import
mandel
parents:
diff changeset
373 */
e78566595089 initial import
mandel
parents:
diff changeset
374 }// class
e78566595089 initial import
mandel
parents:
diff changeset
375
e78566595089 initial import
mandel
parents:
diff changeset
376 class QByteArray___ extends QByteArray {
e78566595089 initial import
mandel
parents:
diff changeset
377 public QByteArray(String s) {
e78566595089 initial import
mandel
parents:
diff changeset
378 this();
e78566595089 initial import
mandel
parents:
diff changeset
379 append(s);
e78566595089 initial import
mandel
parents:
diff changeset
380 }
e78566595089 initial import
mandel
parents:
diff changeset
381
e78566595089 initial import
mandel
parents:
diff changeset
382 public QByteArray(byte data[]) {
e78566595089 initial import
mandel
parents:
diff changeset
383 this(qt.internal.QtJambiInternal.byteArrayToNativePointer(data), data.length);
e78566595089 initial import
mandel
parents:
diff changeset
384 }
e78566595089 initial import
mandel
parents:
diff changeset
385
e78566595089 initial import
mandel
parents:
diff changeset
386 public final boolean contains(String str) {
e78566595089 initial import
mandel
parents:
diff changeset
387 return contains(new QByteArray(str));
e78566595089 initial import
mandel
parents:
diff changeset
388 }
e78566595089 initial import
mandel
parents:
diff changeset
389
e78566595089 initial import
mandel
parents:
diff changeset
390 public final int count(String str) {
e78566595089 initial import
mandel
parents:
diff changeset
391 return count(new QByteArray(str));
e78566595089 initial import
mandel
parents:
diff changeset
392 }
e78566595089 initial import
mandel
parents:
diff changeset
393
e78566595089 initial import
mandel
parents:
diff changeset
394 public final boolean endsWith(String str) {
e78566595089 initial import
mandel
parents:
diff changeset
395 return endsWith(new QByteArray(str));
e78566595089 initial import
mandel
parents:
diff changeset
396 }
e78566595089 initial import
mandel
parents:
diff changeset
397
e78566595089 initial import
mandel
parents:
diff changeset
398 public final QByteArray prepend(String str) {
e78566595089 initial import
mandel
parents:
diff changeset
399 return prepend(new QByteArray(str));
e78566595089 initial import
mandel
parents:
diff changeset
400 }
e78566595089 initial import
mandel
parents:
diff changeset
401
e78566595089 initial import
mandel
parents:
diff changeset
402 public final QByteArray replace(QByteArray before, String after) {
e78566595089 initial import
mandel
parents:
diff changeset
403 return replace(before, new QByteArray(after));
e78566595089 initial import
mandel
parents:
diff changeset
404 }
e78566595089 initial import
mandel
parents:
diff changeset
405
e78566595089 initial import
mandel
parents:
diff changeset
406 public final QByteArray replace(String before, String after) {
e78566595089 initial import
mandel
parents:
diff changeset
407 return replace(new QByteArray(before), new QByteArray(after));
e78566595089 initial import
mandel
parents:
diff changeset
408 }
e78566595089 initial import
mandel
parents:
diff changeset
409
e78566595089 initial import
mandel
parents:
diff changeset
410 public final boolean startsWith(String str) {
e78566595089 initial import
mandel
parents:
diff changeset
411 return startsWith(new QByteArray(str));
e78566595089 initial import
mandel
parents:
diff changeset
412 }
e78566595089 initial import
mandel
parents:
diff changeset
413
e78566595089 initial import
mandel
parents:
diff changeset
414 public final byte[] toByteArray() {
e78566595089 initial import
mandel
parents:
diff changeset
415 byte[] res = new byte[size()];
e78566595089 initial import
mandel
parents:
diff changeset
416
e78566595089 initial import
mandel
parents:
diff changeset
417 for (int i = 0; i < size(); i++) {
e78566595089 initial import
mandel
parents:
diff changeset
418 res[i] = at(i);
e78566595089 initial import
mandel
parents:
diff changeset
419 }
e78566595089 initial import
mandel
parents:
diff changeset
420 return res;
e78566595089 initial import
mandel
parents:
diff changeset
421 }
e78566595089 initial import
mandel
parents:
diff changeset
422
e78566595089 initial import
mandel
parents:
diff changeset
423 @qt.QtBlockedSlot
e78566595089 initial import
mandel
parents:
diff changeset
424 public final QByteArray set(QByteArray other) {
e78566595089 initial import
mandel
parents:
diff changeset
425 operator_assign(other);
e78566595089 initial import
mandel
parents:
diff changeset
426 return this;
e78566595089 initial import
mandel
parents:
diff changeset
427 }
e78566595089 initial import
mandel
parents:
diff changeset
428
e78566595089 initial import
mandel
parents:
diff changeset
429 }// class
e78566595089 initial import
mandel
parents:
diff changeset
430
e78566595089 initial import
mandel
parents:
diff changeset
431 class QFile___ extends QFile {
e78566595089 initial import
mandel
parents:
diff changeset
432 /*
e78566595089 initial import
mandel
parents:
diff changeset
433 public static String decodeName(String localFileName) {
e78566595089 initial import
mandel
parents:
diff changeset
434 return decodeName(qt.QNativePointer.createCharPointer(localFileName));
e78566595089 initial import
mandel
parents:
diff changeset
435 }
e78566595089 initial import
mandel
parents:
diff changeset
436 */
e78566595089 initial import
mandel
parents:
diff changeset
437 }// class
e78566595089 initial import
mandel
parents:
diff changeset
438
e78566595089 initial import
mandel
parents:
diff changeset
439 class QIODevice___ extends QIODevice {
e78566595089 initial import
mandel
parents:
diff changeset
440
e78566595089 initial import
mandel
parents:
diff changeset
441 /**
e78566595089 initial import
mandel
parents:
diff changeset
442 * Gets a byte from the device.
e78566595089 initial import
mandel
parents:
diff changeset
443 *
e78566595089 initial import
mandel
parents:
diff changeset
444 * @return -1 on failure, or the value of the byte on success
e78566595089 initial import
mandel
parents:
diff changeset
445 */
e78566595089 initial import
mandel
parents:
diff changeset
446 /* public final int getByte() {
e78566595089 initial import
mandel
parents:
diff changeset
447 QNativePointer np = new QNativePointer(QNativePointer.Type.Byte);
e78566595089 initial import
mandel
parents:
diff changeset
448 boolean success = getByte(np);
e78566595089 initial import
mandel
parents:
diff changeset
449 return success ? np.byteValue() : -1;
e78566595089 initial import
mandel
parents:
diff changeset
450 }
e78566595089 initial import
mandel
parents:
diff changeset
451 */
e78566595089 initial import
mandel
parents:
diff changeset
452 }// class
e78566595089 initial import
mandel
parents:
diff changeset
453
e78566595089 initial import
mandel
parents:
diff changeset
454 class QCryptographicHash___ extends QCryptographicHash {
e78566595089 initial import
mandel
parents:
diff changeset
455
e78566595089 initial import
mandel
parents:
diff changeset
456 public final void addData(byte data[]) {
e78566595089 initial import
mandel
parents:
diff changeset
457 QNativePointer np = qt.internal.QtJambiInternal.byteArrayToNativePointer(data);
e78566595089 initial import
mandel
parents:
diff changeset
458 addData(np, data.length);
e78566595089 initial import
mandel
parents:
diff changeset
459 }
e78566595089 initial import
mandel
parents:
diff changeset
460
e78566595089 initial import
mandel
parents:
diff changeset
461 }// class
e78566595089 initial import
mandel
parents:
diff changeset
462
e78566595089 initial import
mandel
parents:
diff changeset
463 class QTextCodec___ extends QTextCodec {
e78566595089 initial import
mandel
parents:
diff changeset
464 /*
e78566595089 initial import
mandel
parents:
diff changeset
465 static {
e78566595089 initial import
mandel
parents:
diff changeset
466 setCodecForTr(QTextCodec.codecForName("UTF-8"));
e78566595089 initial import
mandel
parents:
diff changeset
467 }
e78566595089 initial import
mandel
parents:
diff changeset
468
e78566595089 initial import
mandel
parents:
diff changeset
469 public static QTextCodec codecForName(String name) {
e78566595089 initial import
mandel
parents:
diff changeset
470 return codecForName(qt.QNativePointer.createCharPointer(name));
e78566595089 initial import
mandel
parents:
diff changeset
471 }
e78566595089 initial import
mandel
parents:
diff changeset
472 */
e78566595089 initial import
mandel
parents:
diff changeset
473 }// class
e78566595089 initial import
mandel
parents:
diff changeset
474
e78566595089 initial import
mandel
parents:
diff changeset
475 class QBuffer___ extends QBuffer {
e78566595089 initial import
mandel
parents:
diff changeset
476
e78566595089 initial import
mandel
parents:
diff changeset
477 // retain a reference to avoid gc
e78566595089 initial import
mandel
parents:
diff changeset
478 private Object strongDataReference = null;
e78566595089 initial import
mandel
parents:
diff changeset
479
e78566595089 initial import
mandel
parents:
diff changeset
480 public QBuffer(QByteArray byteArray, QObject parent) {
e78566595089 initial import
mandel
parents:
diff changeset
481 this(byteArray.nativePointer(), parent);
e78566595089 initial import
mandel
parents:
diff changeset
482 strongDataReference = byteArray;
e78566595089 initial import
mandel
parents:
diff changeset
483 }
e78566595089 initial import
mandel
parents:
diff changeset
484
e78566595089 initial import
mandel
parents:
diff changeset
485 public QBuffer(QByteArray byteArray) {
e78566595089 initial import
mandel
parents:
diff changeset
486 this(byteArray, null);
e78566595089 initial import
mandel
parents:
diff changeset
487 }
e78566595089 initial import
mandel
parents:
diff changeset
488
e78566595089 initial import
mandel
parents:
diff changeset
489 public final void setBuffer(QByteArray byteArray) {
e78566595089 initial import
mandel
parents:
diff changeset
490 setBuffer(byteArray.nativePointer());
e78566595089 initial import
mandel
parents:
diff changeset
491 strongDataReference = byteArray;
e78566595089 initial import
mandel
parents:
diff changeset
492 }
e78566595089 initial import
mandel
parents:
diff changeset
493
e78566595089 initial import
mandel
parents:
diff changeset
494 public final void setData(byte data[]) {
e78566595089 initial import
mandel
parents:
diff changeset
495 QNativePointer np = qt.internal.QtJambiInternal.byteArrayToNativePointer(data);
e78566595089 initial import
mandel
parents:
diff changeset
496 setData(np, data.length);
e78566595089 initial import
mandel
parents:
diff changeset
497 }
e78566595089 initial import
mandel
parents:
diff changeset
498
e78566595089 initial import
mandel
parents:
diff changeset
499 }// class
e78566595089 initial import
mandel
parents:
diff changeset
500
e78566595089 initial import
mandel
parents:
diff changeset
501 class QSignalMapper___ extends QSignalMapper {
e78566595089 initial import
mandel
parents:
diff changeset
502
e78566595089 initial import
mandel
parents:
diff changeset
503 private java.util.Hashtable<QObject, QObject> __rcObjectForObject = new java.util.Hashtable<QObject, QObject>();
e78566595089 initial import
mandel
parents:
diff changeset
504
e78566595089 initial import
mandel
parents:
diff changeset
505 private java.util.Hashtable<QObject, Object> __rcWidgetForObject = new java.util.Hashtable<QObject, Object>();
e78566595089 initial import
mandel
parents:
diff changeset
506
e78566595089 initial import
mandel
parents:
diff changeset
507 }// class
e78566595089 initial import
mandel
parents:
diff changeset
508
e78566595089 initial import
mandel
parents:
diff changeset
509 class QAbstractFileEngine_MapExtensionReturn___ extends QAbstractFileEngine_MapExtensionReturn {
e78566595089 initial import
mandel
parents:
diff changeset
510 /* private QNativePointer currentAddressNativePointer; // don't garbage collect while in use
e78566595089 initial import
mandel
parents:
diff changeset
511 public final void setAddress(String address) {
e78566595089 initial import
mandel
parents:
diff changeset
512 currentAddressNativePointer = address != null ? QNativePointer.createCharPointer(address) : null;
e78566595089 initial import
mandel
parents:
diff changeset
513 address_private(currentAddressNativePointer);
e78566595089 initial import
mandel
parents:
diff changeset
514 }
e78566595089 initial import
mandel
parents:
diff changeset
515
e78566595089 initial import
mandel
parents:
diff changeset
516 public final String address() {
e78566595089 initial import
mandel
parents:
diff changeset
517 QNativePointer np = address_private();
e78566595089 initial import
mandel
parents:
diff changeset
518 return np != null ? qt.internal.QtJambiInternal.charPointerToString(np) : null;
e78566595089 initial import
mandel
parents:
diff changeset
519 }*/
e78566595089 initial import
mandel
parents:
diff changeset
520 }// class
e78566595089 initial import
mandel
parents:
diff changeset
521
e78566595089 initial import
mandel
parents:
diff changeset
522 class QAbstractFileEngine___ extends QAbstractFileEngine {
e78566595089 initial import
mandel
parents:
diff changeset
523 /**
e78566595089 initial import
mandel
parents:
diff changeset
524 * Adds <tt>path</tt> to the set of paths in which Qt Jambi should search for resources. Resources
e78566595089 initial import
mandel
parents:
diff changeset
525 * can be accessed using the "classpath:" scheme.
e78566595089 initial import
mandel
parents:
diff changeset
526 */
e78566595089 initial import
mandel
parents:
diff changeset
527 /* public static void addSearchPathForResourceEngine(String path)
e78566595089 initial import
mandel
parents:
diff changeset
528 {
e78566595089 initial import
mandel
parents:
diff changeset
529 qt.internal.QClassPathEngine.addSearchPath(path);
e78566595089 initial import
mandel
parents:
diff changeset
530 }
e78566595089 initial import
mandel
parents:
diff changeset
531 */
e78566595089 initial import
mandel
parents:
diff changeset
532 /**
e78566595089 initial import
mandel
parents:
diff changeset
533 * Removes <tt>path</tt> from the set of paths in which Qt Jambi searches
e78566595089 initial import
mandel
parents:
diff changeset
534 * for resources.
e78566595089 initial import
mandel
parents:
diff changeset
535 */
e78566595089 initial import
mandel
parents:
diff changeset
536 /* public static void removeSearchPathForResourceEngine(String path)
e78566595089 initial import
mandel
parents:
diff changeset
537 {
e78566595089 initial import
mandel
parents:
diff changeset
538 qt.internal.QClassPathEngine.removeSearchPath(path);
e78566595089 initial import
mandel
parents:
diff changeset
539 }
e78566595089 initial import
mandel
parents:
diff changeset
540 */
e78566595089 initial import
mandel
parents:
diff changeset
541 }// class
e78566595089 initial import
mandel
parents:
diff changeset
542
e78566595089 initial import
mandel
parents:
diff changeset
543 class QAbstractFileEngine_UnMapExtensionOption___ extends QAbstractFileEngine_UnMapExtensionOption {
e78566595089 initial import
mandel
parents:
diff changeset
544 private QNativePointer currentAddressNativePointer; // don't garbage collect while in use
e78566595089 initial import
mandel
parents:
diff changeset
545 public final void setAddress(String address) {
e78566595089 initial import
mandel
parents:
diff changeset
546 currentAddressNativePointer = address != null ? QNativePointer.createCharPointer(address) : null;
e78566595089 initial import
mandel
parents:
diff changeset
547 address_private(currentAddressNativePointer);
e78566595089 initial import
mandel
parents:
diff changeset
548 }
e78566595089 initial import
mandel
parents:
diff changeset
549
e78566595089 initial import
mandel
parents:
diff changeset
550 public final String address() {
e78566595089 initial import
mandel
parents:
diff changeset
551 QNativePointer np = address_private();
e78566595089 initial import
mandel
parents:
diff changeset
552 return np != null ? qt.internal.QtJambiInternal.charPointerToString(np) : null;
e78566595089 initial import
mandel
parents:
diff changeset
553 }
e78566595089 initial import
mandel
parents:
diff changeset
554 }// class
e78566595089 initial import
mandel
parents:
diff changeset
555
e78566595089 initial import
mandel
parents:
diff changeset
556 class QFutureWatcher___ extends QFutureWatcher {
e78566595089 initial import
mandel
parents:
diff changeset
557
e78566595089 initial import
mandel
parents:
diff changeset
558 public final QFuture<T> future() {
e78566595089 initial import
mandel
parents:
diff changeset
559 if (nativeId() == 0)
e78566595089 initial import
mandel
parents:
diff changeset
560 throw new QNoNativeResourcesException("Function call on incomplete object of type: " +getClass().getName());
e78566595089 initial import
mandel
parents:
diff changeset
561 return __qt_future(nativeId());
e78566595089 initial import
mandel
parents:
diff changeset
562 }
e78566595089 initial import
mandel
parents:
diff changeset
563 private native QFuture<T> __qt_future(long nativeId);
e78566595089 initial import
mandel
parents:
diff changeset
564
e78566595089 initial import
mandel
parents:
diff changeset
565 }// class
e78566595089 initial import
mandel
parents:
diff changeset
566
e78566595089 initial import
mandel
parents:
diff changeset
567 class QFutureWatcherVoid___ extends QFutureWatcherVoid {
e78566595089 initial import
mandel
parents:
diff changeset
568
e78566595089 initial import
mandel
parents:
diff changeset
569 public final QFutureVoid future() {
e78566595089 initial import
mandel
parents:
diff changeset
570 if (nativeId() == 0)
e78566595089 initial import
mandel
parents:
diff changeset
571 throw new QNoNativeResourcesException("Function call on incomplete object of type: " +getClass().getName());
e78566595089 initial import
mandel
parents:
diff changeset
572 return __qt_future(nativeId());
e78566595089 initial import
mandel
parents:
diff changeset
573 }
e78566595089 initial import
mandel
parents:
diff changeset
574
e78566595089 initial import
mandel
parents:
diff changeset
575 private native QFutureVoid __qt_future(long nativeId);
e78566595089 initial import
mandel
parents:
diff changeset
576
e78566595089 initial import
mandel
parents:
diff changeset
577 }// class
e78566595089 initial import
mandel
parents:
diff changeset
578
e78566595089 initial import
mandel
parents:
diff changeset
579 class QFutureSynchronizer___ extends QFutureSynchronizer {
e78566595089 initial import
mandel
parents:
diff changeset
580
e78566595089 initial import
mandel
parents:
diff changeset
581 public final java.util.List<QFuture<T>> futures() {
e78566595089 initial import
mandel
parents:
diff changeset
582 if (nativeId() == 0)
e78566595089 initial import
mandel
parents:
diff changeset
583 throw new QNoNativeResourcesException("Function call on incomplete object of type: " +getClass().getName());
e78566595089 initial import
mandel
parents:
diff changeset
584 return __qt_futures(nativeId());
e78566595089 initial import
mandel
parents:
diff changeset
585 }
e78566595089 initial import
mandel
parents:
diff changeset
586 private native java.util.List<QFuture<T>> __qt_futures(long nativeId);
e78566595089 initial import
mandel
parents:
diff changeset
587
e78566595089 initial import
mandel
parents:
diff changeset
588 }// class
e78566595089 initial import
mandel
parents:
diff changeset
589
e78566595089 initial import
mandel
parents:
diff changeset
590 class QFutureSynchronizerVoid___ extends QFutureSynchronizerVoid {
e78566595089 initial import
mandel
parents:
diff changeset
591
e78566595089 initial import
mandel
parents:
diff changeset
592 public final java.util.List<QFutureVoid> futures() {
e78566595089 initial import
mandel
parents:
diff changeset
593 if (nativeId() == 0)
e78566595089 initial import
mandel
parents:
diff changeset
594 throw new QNoNativeResourcesException("Function call on incomplete object of type: " +getClass().getName());
e78566595089 initial import
mandel
parents:
diff changeset
595 return __qt_futures(nativeId());
e78566595089 initial import
mandel
parents:
diff changeset
596 }
e78566595089 initial import
mandel
parents:
diff changeset
597 private native java.util.List<QFutureVoid> __qt_futures(long nativeId);
e78566595089 initial import
mandel
parents:
diff changeset
598
e78566595089 initial import
mandel
parents:
diff changeset
599 }// class
e78566595089 initial import
mandel
parents:
diff changeset
600
e78566595089 initial import
mandel
parents:
diff changeset
601 class QLineF___ extends QLineF {
e78566595089 initial import
mandel
parents:
diff changeset
602 /*
e78566595089 initial import
mandel
parents:
diff changeset
603 public final QLineF.IntersectType intersect(QLineF line, qt.core.QPointF intersectionPoint) {
e78566595089 initial import
mandel
parents:
diff changeset
604 return intersect(line, intersectionPoint != null ? intersectionPoint.nativePointer() : null);
e78566595089 initial import
mandel
parents:
diff changeset
605 }
e78566595089 initial import
mandel
parents:
diff changeset
606 */
e78566595089 initial import
mandel
parents:
diff changeset
607 }// class
e78566595089 initial import
mandel
parents:
diff changeset
608
e78566595089 initial import
mandel
parents:
diff changeset
609 /**
e78566595089 initial import
mandel
parents:
diff changeset
610 The QtConcurrent class contains static methods for running computations in parallel (using separate threads)
e78566595089 initial import
mandel
parents:
diff changeset
611 on the items in a java.util.Collection, such as a Vector or LinkedList. We will now describe these methods.
e78566595089 initial import
mandel
parents:
diff changeset
612
e78566595089 initial import
mandel
parents:
diff changeset
613 The QtConcurrent::map(), QtConcurrent::mapped() and QtConcurrent::mappedReduced() functions run computations in parallel on the items in a sequence such as a QList or a QVector. QtConcurrent::map() modifies a sequence in-place, QtConcurrent::mapped() returns a new sequence containing the modified content, and QtConcurrent::mappedReduced() returns a single result.
e78566595089 initial import
mandel
parents:
diff changeset
614 Concurrent Map
e78566595089 initial import
mandel
parents:
diff changeset
615 <p>
e78566595089 initial import
mandel
parents:
diff changeset
616 QtConcurrent::mapped() takes an input sequence and a map function. This map function is then called for each item in the sequence, and a new sequence containing the return values from the map function is returned.
e78566595089 initial import
mandel
parents:
diff changeset
617 <p>
e78566595089 initial import
mandel
parents:
diff changeset
618 The map function must be of the form:
e78566595089 initial import
mandel
parents:
diff changeset
619 <pre>
e78566595089 initial import
mandel
parents:
diff changeset
620 U function(const T &amp;t);
e78566595089 initial import
mandel
parents:
diff changeset
621 </pre>
e78566595089 initial import
mandel
parents:
diff changeset
622 T and U can be any type (and they can even be the same type), but T must match the type stored in the sequence. The function returns the modified or mapped content.
e78566595089 initial import
mandel
parents:
diff changeset
623 <p>
e78566595089 initial import
mandel
parents:
diff changeset
624 This example shows how to apply a scale function to all the items in a sequence:
e78566595089 initial import
mandel
parents:
diff changeset
625 <pre>
e78566595089 initial import
mandel
parents:
diff changeset
626 QImage scaled(const QImage &amp;image)
e78566595089 initial import
mandel
parents:
diff changeset
627 {
e78566595089 initial import
mandel
parents:
diff changeset
628 return image.scaled(100, 100);
e78566595089 initial import
mandel
parents:
diff changeset
629 }
e78566595089 initial import
mandel
parents:
diff changeset
630
e78566595089 initial import
mandel
parents:
diff changeset
631 QList &lt;QImage&gt; images = ...;
e78566595089 initial import
mandel
parents:
diff changeset
632 QFuture&lt;QImage&gt; thumbnails = QtConcurrent::mapped(images, scaled);
e78566595089 initial import
mandel
parents:
diff changeset
633 </pre>
e78566595089 initial import
mandel
parents:
diff changeset
634 The results of the map are made available through QFuture. See the QFuture and QFutureWatcher documentation for more information on how to use QFuture in your applications.
e78566595089 initial import
mandel
parents:
diff changeset
635 <p>
e78566595089 initial import
mandel
parents:
diff changeset
636 If you want to modify a sequence in-place, use QtConcurrent::map(). The map function must then be of the form:
e78566595089 initial import
mandel
parents:
diff changeset
637 <pre>
e78566595089 initial import
mandel
parents:
diff changeset
638 U function(T &amp;t);
e78566595089 initial import
mandel
parents:
diff changeset
639 </pre>
e78566595089 initial import
mandel
parents:
diff changeset
640 Note that the return value and return type of the map function are not used.
e78566595089 initial import
mandel
parents:
diff changeset
641 <p>
e78566595089 initial import
mandel
parents:
diff changeset
642 Using QtConcurrent::map() is similar to using QtConcurrent::mapped():
e78566595089 initial import
mandel
parents:
diff changeset
643 <pre>
e78566595089 initial import
mandel
parents:
diff changeset
644 void scale(QImage &amp;image)
e78566595089 initial import
mandel
parents:
diff changeset
645 {
e78566595089 initial import
mandel
parents:
diff changeset
646 image = image.scaled(100, 100);
e78566595089 initial import
mandel
parents:
diff changeset
647 }
e78566595089 initial import
mandel
parents:
diff changeset
648
e78566595089 initial import
mandel
parents:
diff changeset
649 QList&lt;QImage&gt; images = ...;
e78566595089 initial import
mandel
parents:
diff changeset
650 QFuture&lt;void&gt; future = QtConcurrent::map(images, scale);
e78566595089 initial import
mandel
parents:
diff changeset
651 </pre>
e78566595089 initial import
mandel
parents:
diff changeset
652 Since the sequence is modified in place, QtConcurrent::map() does not return any results via QFuture. However, you can still use QFuture and QFutureWatcher to monitor the status of the map.
e78566595089 initial import
mandel
parents:
diff changeset
653 Concurrent Map-Reduce
e78566595089 initial import
mandel
parents:
diff changeset
654 <p>
e78566595089 initial import
mandel
parents:
diff changeset
655 QtConcurrent::mappedReduced() is similar to QtConcurrent::mapped(), but instead of returning a sequence with the new results, the results are combined into a single value using a reduce function.
e78566595089 initial import
mandel
parents:
diff changeset
656 <p>
e78566595089 initial import
mandel
parents:
diff changeset
657 The reduce function must be of the form:
e78566595089 initial import
mandel
parents:
diff changeset
658 <pre>
e78566595089 initial import
mandel
parents:
diff changeset
659 V function(T &amp;result, const U &amp;intermediate)
e78566595089 initial import
mandel
parents:
diff changeset
660 </pre>
e78566595089 initial import
mandel
parents:
diff changeset
661 T is the type of the final result, U is the return type of the map function. Note that the return value and return type of the reduce function are not used.
e78566595089 initial import
mandel
parents:
diff changeset
662 <p>
e78566595089 initial import
mandel
parents:
diff changeset
663 Call QtConcurrent::mappedReduced() like this:
e78566595089 initial import
mandel
parents:
diff changeset
664 <pre>
e78566595089 initial import
mandel
parents:
diff changeset
665 void addToCollage(QImage &amp;collage, const QImage &amp;thumbnail)
e78566595089 initial import
mandel
parents:
diff changeset
666 {
e78566595089 initial import
mandel
parents:
diff changeset
667 QPainter p(&amp;collage);
e78566595089 initial import
mandel
parents:
diff changeset
668 static QPoint offset = QPoint(0, 0);
e78566595089 initial import
mandel
parents:
diff changeset
669 p.drawImage(offset, thumbnail);
e78566595089 initial import
mandel
parents:
diff changeset
670 offset += ...;
e78566595089 initial import
mandel
parents:
diff changeset
671 }
e78566595089 initial import
mandel
parents:
diff changeset
672
e78566595089 initial import
mandel
parents:
diff changeset
673 QList&lt;QImage&gt; images = ...;
e78566595089 initial import
mandel
parents:
diff changeset
674 QFuture&lt;QImage&gt; collage = QtConcurrent::mappedReduced(images, scaled, addToCollage);
e78566595089 initial import
mandel
parents:
diff changeset
675 </pre>
e78566595089 initial import
mandel
parents:
diff changeset
676 The reduce function will be called once for each result returned by the map function, and should merge the intermediate into the result variable. QtConcurrent::mappedReduced() guarantees that only one thread will call reduce at a time, so using a mutex to lock the result variable is not neccesary. The QtConcurrent::ReduceOptions enum provides a way to control the order in which the reduction is done. If QtConcurrent::UnorderedReduce is used (the default), the order is undefined, while QtConcurrent::OrderedReduce ensures that the reduction is done in the order of the original sequence.
e78566595089 initial import
mandel
parents:
diff changeset
677 Additional API Features
e78566595089 initial import
mandel
parents:
diff changeset
678 Using Iterators instead of Sequence
e78566595089 initial import
mandel
parents:
diff changeset
679 <p>
e78566595089 initial import
mandel
parents:
diff changeset
680 Each of the above functions has a variant that takes an iterator range instead of a sequence. You use them in the same way as the sequence variants:
e78566595089 initial import
mandel
parents:
diff changeset
681 <pre>
e78566595089 initial import
mandel
parents:
diff changeset
682 QList&lt;QImage&gt; images = ...;
e78566595089 initial import
mandel
parents:
diff changeset
683
e78566595089 initial import
mandel
parents:
diff changeset
684 QFuture&lt;QImage&gt; thumbnails = QtConcurrent::mapped(images.constBegin(), images.constEnd(), scaled);
e78566595089 initial import
mandel
parents:
diff changeset
685
e78566595089 initial import
mandel
parents:
diff changeset
686 // map in-place only works on non-const iterators
e78566595089 initial import
mandel
parents:
diff changeset
687 QFuture&lt;void&gt; future = QtConcurrent::map(images.begin(), images.end(), scale);
e78566595089 initial import
mandel
parents:
diff changeset
688
e78566595089 initial import
mandel
parents:
diff changeset
689 QFuture&lt;QImage&gt; collage = QtConcurrent::mappedReduced(images.constBegin(), images.constEnd(), scaled, addToCollage);
e78566595089 initial import
mandel
parents:
diff changeset
690 </pre>
e78566595089 initial import
mandel
parents:
diff changeset
691 Blocking Variants
e78566595089 initial import
mandel
parents:
diff changeset
692 <p>
e78566595089 initial import
mandel
parents:
diff changeset
693 Each of the above functions has a blocking variant that returns the final result instead of a QFuture. You use them in the same way as the asynchronous variants.
e78566595089 initial import
mandel
parents:
diff changeset
694 <pre>
e78566595089 initial import
mandel
parents:
diff changeset
695 QList&lt;QImage&gt; images = ...;
e78566595089 initial import
mandel
parents:
diff changeset
696
e78566595089 initial import
mandel
parents:
diff changeset
697 // each call blocks until the entire operation is finished
e78566595089 initial import
mandel
parents:
diff changeset
698 QList&lt;QImage&gt; future = QtConcurrent::blockingMapped(images, scaled);
e78566595089 initial import
mandel
parents:
diff changeset
699
e78566595089 initial import
mandel
parents:
diff changeset
700 QtConcurrent::blockingMap(images, scale);
e78566595089 initial import
mandel
parents:
diff changeset
701
e78566595089 initial import
mandel
parents:
diff changeset
702 QImage collage = QtConcurrent::blockingMappedReduced(images, scaled, addToCollage);
e78566595089 initial import
mandel
parents:
diff changeset
703 </pre>
e78566595089 initial import
mandel
parents:
diff changeset
704 Note that the result types above are not QFuture objects, but real result types (in this case, QList&lt;QImage&gt; and QImage).
e78566595089 initial import
mandel
parents:
diff changeset
705 Using Member Functions
e78566595089 initial import
mandel
parents:
diff changeset
706 <p>
e78566595089 initial import
mandel
parents:
diff changeset
707 QtConcurrent::map(), QtConcurrent::mapped(), and QtConcurrent::mappedReduced() accept pointers to member functions. The member function class type must match the type stored in the sequence:
e78566595089 initial import
mandel
parents:
diff changeset
708 <pre>
e78566595089 initial import
mandel
parents:
diff changeset
709 // squeeze all strings in a QStringList
e78566595089 initial import
mandel
parents:
diff changeset
710 QStringList strings = ...;
e78566595089 initial import
mandel
parents:
diff changeset
711 QFuture&lt;void&gt; squeezedStrings = QtConcurrent::map(strings, &amp;QString::squeeze);
e78566595089 initial import
mandel
parents:
diff changeset
712
e78566595089 initial import
mandel
parents:
diff changeset
713 // swap the rgb values of all pixels on a list of images
e78566595089 initial import
mandel
parents:
diff changeset
714 QList&lt;QImage&gt; images = ...;
e78566595089 initial import
mandel
parents:
diff changeset
715 QFuture&lt;QImage&gt; bgrImages = QtConcurrent::mapped(images, &amp;QImage::rgbSwapped);
e78566595089 initial import
mandel
parents:
diff changeset
716
e78566595089 initial import
mandel
parents:
diff changeset
717 // create a set of the lengths of all strings in a list
e78566595089 initial import
mandel
parents:
diff changeset
718 QStringList strings = ...;
e78566595089 initial import
mandel
parents:
diff changeset
719 QFuture&lt;QSet&lt;int&gt; &gt; wordLengths = QtConcurrent::mappedReduced(string, &amp;QString::length, &amp;QSet&lt;int&gt;::insert);
e78566595089 initial import
mandel
parents:
diff changeset
720 </pre>
e78566595089 initial import
mandel
parents:
diff changeset
721 Note that when using QtConcurrent::mappedReduced(), you can mix the use of normal and member functions freely:
e78566595089 initial import
mandel
parents:
diff changeset
722 <p>
e78566595089 initial import
mandel
parents:
diff changeset
723 <pre>
e78566595089 initial import
mandel
parents:
diff changeset
724 // can mix normal functions and member functions with QtConcurrent::mappedReduced()
e78566595089 initial import
mandel
parents:
diff changeset
725
e78566595089 initial import
mandel
parents:
diff changeset
726 // compute the average length of a list of strings
e78566595089 initial import
mandel
parents:
diff changeset
727 extern void computeAverage(int &amp;average, int length);
e78566595089 initial import
mandel
parents:
diff changeset
728 QStringList strings = ...;
e78566595089 initial import
mandel
parents:
diff changeset
729 QFuture&lt;int&gt; averageWordLength = QtConcurrent::mappedReduced(strings, &amp;QString::length, computeAverage);
e78566595089 initial import
mandel
parents:
diff changeset
730
e78566595089 initial import
mandel
parents:
diff changeset
731 // create a set of the color distribution of all images in a list
e78566595089 initial import
mandel
parents:
diff changeset
732 extern int colorDistribution(const QImage &amp;string);
e78566595089 initial import
mandel
parents:
diff changeset
733 QList&lt;QImage&gt; images = ...;
e78566595089 initial import
mandel
parents:
diff changeset
734 QFuture&lt;QSet&lt;int&gt; &gt; totalColorDistribution = QtConcurrent::mappedReduced(images, colorDistribution, QSet&lt;int&gt;::insert);
e78566595089 initial import
mandel
parents:
diff changeset
735 </pre>
e78566595089 initial import
mandel
parents:
diff changeset
736 Using Function Objects
e78566595089 initial import
mandel
parents:
diff changeset
737 <p>
e78566595089 initial import
mandel
parents:
diff changeset
738 QtConcurrent::map(), QtConcurrent::mapped(), and QtConcurrent::mappedReduced() accept function objects, which can be used to add state to a function call. The result_type typedef must define the result type of the function call operator:
e78566595089 initial import
mandel
parents:
diff changeset
739 <pre>
e78566595089 initial import
mandel
parents:
diff changeset
740 struct Scaled
e78566595089 initial import
mandel
parents:
diff changeset
741 {
e78566595089 initial import
mandel
parents:
diff changeset
742 Scaled(int size)
e78566595089 initial import
mandel
parents:
diff changeset
743 : m_size(size) { }
e78566595089 initial import
mandel
parents:
diff changeset
744
e78566595089 initial import
mandel
parents:
diff changeset
745 typedef QImage result_type;
e78566595089 initial import
mandel
parents:
diff changeset
746
e78566595089 initial import
mandel
parents:
diff changeset
747 QImage operator()(const QImage &amp;image)
e78566595089 initial import
mandel
parents:
diff changeset
748 {
e78566595089 initial import
mandel
parents:
diff changeset
749 return image.scaled(m_size, m_size);
e78566595089 initial import
mandel
parents:
diff changeset
750 }
e78566595089 initial import
mandel
parents:
diff changeset
751
e78566595089 initial import
mandel
parents:
diff changeset
752 int m_size;
e78566595089 initial import
mandel
parents:
diff changeset
753 };
e78566595089 initial import
mandel
parents:
diff changeset
754
e78566595089 initial import
mandel
parents:
diff changeset
755 QList&lt;QImage&gt; images = ...;
e78566595089 initial import
mandel
parents:
diff changeset
756 QFuture&lt;QImage&gt; thumbnails = QtConcurrent::mapped(images, Scaled(100));
e78566595089 initial import
mandel
parents:
diff changeset
757 </pre>
e78566595089 initial import
mandel
parents:
diff changeset
758 Using Bound Function Arguments
e78566595089 initial import
mandel
parents:
diff changeset
759 <p>
e78566595089 initial import
mandel
parents:
diff changeset
760 Note that Qt does not provide support for bound functions. This is provided by 3rd party libraries like Boost or C++ TR1 Library Extensions.
e78566595089 initial import
mandel
parents:
diff changeset
761 <p>
e78566595089 initial import
mandel
parents:
diff changeset
762 If you want to use a map function that takes more than one argument you can use boost::bind() or std::tr1::bind() to transform it onto a function that takes one argument.
e78566595089 initial import
mandel
parents:
diff changeset
763 <p>
e78566595089 initial import
mandel
parents:
diff changeset
764 As an example, we'll use QImage::scaledToWidth():
e78566595089 initial import
mandel
parents:
diff changeset
765 <pre>
e78566595089 initial import
mandel
parents:
diff changeset
766 QImage QImage::scaledToWidth(int width, Qt::TransformationMode) const;
e78566595089 initial import
mandel
parents:
diff changeset
767 </pre>
e78566595089 initial import
mandel
parents:
diff changeset
768 scaledToWidth takes three arguments (including the "this" pointer) and can't be used with QtConcurrent::mapped() directly, because QtConcurrent::mapped() expects a function that takes one argument. To use QImage::scaledToWidth() with QtConcurrent::mapped() we have to provide a value for the width and the transformation mode:
e78566595089 initial import
mandel
parents:
diff changeset
769 <pre>
e78566595089 initial import
mandel
parents:
diff changeset
770 boost::bind(&amp;QImage::scaledToWidth, 100 Qt::SmoothTransformation)
e78566595089 initial import
mandel
parents:
diff changeset
771 </pre>
e78566595089 initial import
mandel
parents:
diff changeset
772 The return value from boost::bind() is a function object (functor) with the following signature:
e78566595089 initial import
mandel
parents:
diff changeset
773 <pre>
e78566595089 initial import
mandel
parents:
diff changeset
774 QImage scaledToWith(const QImage &amp;image)
e78566595089 initial import
mandel
parents:
diff changeset
775 </pre>
e78566595089 initial import
mandel
parents:
diff changeset
776 This matches what QtConcurrent::mapped() expects, and the complete example becomes:
e78566595089 initial import
mandel
parents:
diff changeset
777 <pre>
e78566595089 initial import
mandel
parents:
diff changeset
778 QList&gt;QImage&lt; images = ...;
e78566595089 initial import
mandel
parents:
diff changeset
779 QFuture&gt;QImage&lt; thumbnails = QtConcurrent::mapped(images, boost::bind(&amp;QImage::scaledToWidth, 100 Qt::SmoothTransformation));
e78566595089 initial import
mandel
parents:
diff changeset
780 </pre>
e78566595089 initial import
mandel
parents:
diff changeset
781 */
e78566595089 initial import
mandel
parents:
diff changeset
782 class QtConcurrent___ extends QtConcurrent {
e78566595089 initial import
mandel
parents:
diff changeset
783
e78566595089 initial import
mandel
parents:
diff changeset
784 static {
e78566595089 initial import
mandel
parents:
diff changeset
785 qt.QtJambi_LibraryInitializer.init();
e78566595089 initial import
mandel
parents:
diff changeset
786 qt.core.QtJambi_LibraryInitializer.init();
e78566595089 initial import
mandel
parents:
diff changeset
787 }
e78566595089 initial import
mandel
parents:
diff changeset
788
e78566595089 initial import
mandel
parents:
diff changeset
789 /**
e78566595089 initial import
mandel
parents:
diff changeset
790 * An implemetation of this interface is given one to QtConcurrent's map() methods.
e78566595089 initial import
mandel
parents:
diff changeset
791 * The map() method of this interface is called for each object in a java.util.Collection.
e78566595089 initial import
mandel
parents:
diff changeset
792 *
e78566595089 initial import
mandel
parents:
diff changeset
793 */
e78566595089 initial import
mandel
parents:
diff changeset
794 public interface MapFunctor<T> {
e78566595089 initial import
mandel
parents:
diff changeset
795
e78566595089 initial import
mandel
parents:
diff changeset
796 /**
e78566595089 initial import
mandel
parents:
diff changeset
797 * This function is called for each item in the Collection. The function is then free to alter <tt>object</tt> as it see fit.
e78566595089 initial import
mandel
parents:
diff changeset
798 */
e78566595089 initial import
mandel
parents:
diff changeset
799 public void map(T object);
e78566595089 initial import
mandel
parents:
diff changeset
800 }
e78566595089 initial import
mandel
parents:
diff changeset
801 /**
e78566595089 initial import
mandel
parents:
diff changeset
802 * Calls function once for each item in sequence. The function is passed a reference to the item, so that any modifications done to the item will appear in sequence.
e78566595089 initial import
mandel
parents:
diff changeset
803 */
e78566595089 initial import
mandel
parents:
diff changeset
804 public static native <T> QFutureVoid map(java.util.Collection<T> sequence, MapFunctor<T> functor);
e78566595089 initial import
mandel
parents:
diff changeset
805
e78566595089 initial import
mandel
parents:
diff changeset
806 /**
e78566595089 initial import
mandel
parents:
diff changeset
807 * Calls function once for each item in sequence. The function is passed a reference to the item, so that any modifications done to the item will appear in sequence.
e78566595089 initial import
mandel
parents:
diff changeset
808 */
e78566595089 initial import
mandel
parents:
diff changeset
809 public static native <T> void blockingMap(java.util.Collection<T> sequence, MapFunctor<T> functor);
e78566595089 initial import
mandel
parents:
diff changeset
810
e78566595089 initial import
mandel
parents:
diff changeset
811 /**
e78566595089 initial import
mandel
parents:
diff changeset
812 * Implement this interface to perform a mapped operation. An implementation of the interface is sendt
e78566595089 initial import
mandel
parents:
diff changeset
813 * to ome of the mapped methods of QtConcurrent, which applies the MappedFunctor.map() method to all elements in a collection,
e78566595089 initial import
mandel
parents:
diff changeset
814 * and returns the result.
e78566595089 initial import
mandel
parents:
diff changeset
815 */
e78566595089 initial import
mandel
parents:
diff changeset
816 public interface MappedFunctor<U, T> {
e78566595089 initial import
mandel
parents:
diff changeset
817
e78566595089 initial import
mandel
parents:
diff changeset
818 /**
e78566595089 initial import
mandel
parents:
diff changeset
819 * This method is called for each object in a collection. It should returned a new altered
e78566595089 initial import
mandel
parents:
diff changeset
820 * object.
e78566595089 initial import
mandel
parents:
diff changeset
821 */
e78566595089 initial import
mandel
parents:
diff changeset
822 public U map(T object);
e78566595089 initial import
mandel
parents:
diff changeset
823 }
e78566595089 initial import
mandel
parents:
diff changeset
824
e78566595089 initial import
mandel
parents:
diff changeset
825 /**
e78566595089 initial import
mandel
parents:
diff changeset
826 * Calls function once for each item in sequence and returns a future with each mapped item as a result. You can QFutureIterator to iterate through the results.
e78566595089 initial import
mandel
parents:
diff changeset
827 *
e78566595089 initial import
mandel
parents:
diff changeset
828 */
e78566595089 initial import
mandel
parents:
diff changeset
829 public static native <U, T> QFuture<U> mapped(java.util.Collection<T> sequence, MappedFunctor<U, T> functor);
e78566595089 initial import
mandel
parents:
diff changeset
830
e78566595089 initial import
mandel
parents:
diff changeset
831 /**
e78566595089 initial import
mandel
parents:
diff changeset
832 * Calls function once for each item in sequence and returns a future with each mapped item as a result. You can QFutureIterator to iterate through the results.
e78566595089 initial import
mandel
parents:
diff changeset
833 */
e78566595089 initial import
mandel
parents:
diff changeset
834 public static native <U, T> java.util.List<U> blockingMapped(java.util.Collection<T> sequence, MappedFunctor<U, T> functor);
e78566595089 initial import
mandel
parents:
diff changeset
835
e78566595089 initial import
mandel
parents:
diff changeset
836 /**
e78566595089 initial import
mandel
parents:
diff changeset
837 * Implement this interface in order to perform a reduce operation.
e78566595089 initial import
mandel
parents:
diff changeset
838 * <p>
e78566595089 initial import
mandel
parents:
diff changeset
839 * The reduce method will be called once per intermediate result (the result of the mapping of the data)
e78566595089 initial import
mandel
parents:
diff changeset
840 * and the very first time the reduce() method is called for the particular data set, the result is set to
e78566595089 initial import
mandel
parents:
diff changeset
841 * the returned value of the defaultResult() method.
e78566595089 initial import
mandel
parents:
diff changeset
842 */
e78566595089 initial import
mandel
parents:
diff changeset
843 public interface ReducedFunctor<U, T> {
e78566595089 initial import
mandel
parents:
diff changeset
844 public U defaultResult();
e78566595089 initial import
mandel
parents:
diff changeset
845
e78566595089 initial import
mandel
parents:
diff changeset
846 /**
e78566595089 initial import
mandel
parents:
diff changeset
847 * Performs a reduce operation on <tt>intermediate</tt>. <tt>result</tt> is the result of the reduction.
e78566595089 initial import
mandel
parents:
diff changeset
848 */
e78566595089 initial import
mandel
parents:
diff changeset
849 public void reduce(U result, T intermediate);
e78566595089 initial import
mandel
parents:
diff changeset
850 }
e78566595089 initial import
mandel
parents:
diff changeset
851
e78566595089 initial import
mandel
parents:
diff changeset
852 /**
e78566595089 initial import
mandel
parents:
diff changeset
853 * This is an overloaded method provided for convenience.
e78566595089 initial import
mandel
parents:
diff changeset
854 * <p>
e78566595089 initial import
mandel
parents:
diff changeset
855 * It is equivalent of mappedReduced(sequence, functor, reducedFunctor, ReduceOption.UnorderedReduce, ReduceOption.SequentialReduce)
e78566595089 initial import
mandel
parents:
diff changeset
856 */
e78566595089 initial import
mandel
parents:
diff changeset
857 public static <U, V, T> QFuture<U> mappedReduced(java.util.Collection<T> sequence, MappedFunctor<V, T> functor, ReducedFunctor<U, V> reducedFunctor) {
e78566595089 initial import
mandel
parents:
diff changeset
858 return mappedReduced(sequence, functor, reducedFunctor, ReduceOption.UnorderedReduce, ReduceOption.SequentialReduce);
e78566595089 initial import
mandel
parents:
diff changeset
859 }
e78566595089 initial import
mandel
parents:
diff changeset
860
e78566595089 initial import
mandel
parents:
diff changeset
861
e78566595089 initial import
mandel
parents:
diff changeset
862 /**
e78566595089 initial import
mandel
parents:
diff changeset
863 * This is an overloaded method provided for convenience.
e78566595089 initial import
mandel
parents:
diff changeset
864 * <p>
e78566595089 initial import
mandel
parents:
diff changeset
865 * Note that while mapFunction is called concurrently, only one thread at a time will call reduceFunction. The order in which reduceFunction is called is determined by reduceOptions.
e78566595089 initial import
mandel
parents:
diff changeset
866 *
e78566595089 initial import
mandel
parents:
diff changeset
867 */
e78566595089 initial import
mandel
parents:
diff changeset
868 public static <U, V, T> QFuture<U> mappedReduced(java.util.Collection<T> sequence, MappedFunctor<V, T> functor, ReducedFunctor<U, V> reducedFunctor, ReduceOption ... options) {
e78566595089 initial import
mandel
parents:
diff changeset
869 return mappedReduced(sequence, functor, reducedFunctor, new ReduceOptions(options));
e78566595089 initial import
mandel
parents:
diff changeset
870 }
e78566595089 initial import
mandel
parents:
diff changeset
871
e78566595089 initial import
mandel
parents:
diff changeset
872 /**
e78566595089 initial import
mandel
parents:
diff changeset
873 * Calls mapFunction once for each item in sequence. The return value of each mapFunction is passed to reduceFunction.
e78566595089 initial import
mandel
parents:
diff changeset
874 * <p>
e78566595089 initial import
mandel
parents:
diff changeset
875 * Note that while mapFunction is called concurrently, only one thread at a time will call reduceFunction. The order in which reduceFunction is called is determined by reduceOptions.
e78566595089 initial import
mandel
parents:
diff changeset
876 *
e78566595089 initial import
mandel
parents:
diff changeset
877 */
e78566595089 initial import
mandel
parents:
diff changeset
878 public static <U, V, T> QFuture<U> mappedReduced(java.util.Collection<T> sequence, MappedFunctor<V, T> functor, ReducedFunctor<U, V> reducedFunctor, ReduceOptions options) {
e78566595089 initial import
mandel
parents:
diff changeset
879 return mappedReduced(sequence, functor, reducedFunctor, options.value());
e78566595089 initial import
mandel
parents:
diff changeset
880 }
e78566595089 initial import
mandel
parents:
diff changeset
881
e78566595089 initial import
mandel
parents:
diff changeset
882 private native static <U, V, T> QFuture<U> mappedReduced(java.util.Collection<T> sequence, MappedFunctor<V, T> functor, ReducedFunctor<U, V> reducedFunctor, int options);
e78566595089 initial import
mandel
parents:
diff changeset
883
e78566595089 initial import
mandel
parents:
diff changeset
884
e78566595089 initial import
mandel
parents:
diff changeset
885 /**
e78566595089 initial import
mandel
parents:
diff changeset
886 * This is an overloaded method provided for convenience.
e78566595089 initial import
mandel
parents:
diff changeset
887 * <p>
e78566595089 initial import
mandel
parents:
diff changeset
888 * It is equivalent of calling blockingMappedReduced(sequence, functor, reducedFunctor, ReduceOption.UnorderedReduce, ReduceOption.SequentialReduce)
e78566595089 initial import
mandel
parents:
diff changeset
889 *
e78566595089 initial import
mandel
parents:
diff changeset
890 */
e78566595089 initial import
mandel
parents:
diff changeset
891 public static <U, V, T> U blockingMappedReduced(java.util.Collection<T> sequence, MappedFunctor<V, T> functor, ReducedFunctor<U, V> reducedFunctor) {
e78566595089 initial import
mandel
parents:
diff changeset
892 return blockingMappedReduced(sequence, functor, reducedFunctor, ReduceOption.UnorderedReduce, ReduceOption.SequentialReduce);
e78566595089 initial import
mandel
parents:
diff changeset
893 }
e78566595089 initial import
mandel
parents:
diff changeset
894
e78566595089 initial import
mandel
parents:
diff changeset
895 /**
e78566595089 initial import
mandel
parents:
diff changeset
896 * Calls mapFunction once for each item in sequence. The return value of each mapFunction is passed to reduceFunction.
e78566595089 initial import
mandel
parents:
diff changeset
897 * <p>
e78566595089 initial import
mandel
parents:
diff changeset
898 * Note that while mapFunction is called concurrently, only one thread at a time will call reduceFunction. The order in which reduceFunction is called is determined by reduceOptions.
e78566595089 initial import
mandel
parents:
diff changeset
899 * <p>
e78566595089 initial import
mandel
parents:
diff changeset
900 * Note: This function will block until all items in the sequence have been processed.
e78566595089 initial import
mandel
parents:
diff changeset
901 */
e78566595089 initial import
mandel
parents:
diff changeset
902 public static <U, V, T> U blockingMappedReduced(java.util.Collection<T> sequence, MappedFunctor<V, T> functor, ReducedFunctor<U, V> reducedFunctor, ReduceOption ... options) {
e78566595089 initial import
mandel
parents:
diff changeset
903 return blockingMappedReduced(sequence, functor, reducedFunctor, new ReduceOptions(options));
e78566595089 initial import
mandel
parents:
diff changeset
904 }
e78566595089 initial import
mandel
parents:
diff changeset
905
e78566595089 initial import
mandel
parents:
diff changeset
906 /**
e78566595089 initial import
mandel
parents:
diff changeset
907 * Calls mapFunction once for each item in sequence. The return value of each mapFunction is passed to reduceFunction.
e78566595089 initial import
mandel
parents:
diff changeset
908 * <p>
e78566595089 initial import
mandel
parents:
diff changeset
909 * Note that while mapFunction is called concurrently, only one thread at a time will call reduceFunction. The order in which reduceFunction is called is determined by reduceOptions.
e78566595089 initial import
mandel
parents:
diff changeset
910 * <p>
e78566595089 initial import
mandel
parents:
diff changeset
911 * Note: This function will block until all items in the sequence have been processed.
e78566595089 initial import
mandel
parents:
diff changeset
912 */
e78566595089 initial import
mandel
parents:
diff changeset
913 public static <U, V, T> U blockingMappedReduced(java.util.Collection<T> sequence, MappedFunctor<V, T> functor, ReducedFunctor<U, V> reducedFunctor, ReduceOptions options) {
e78566595089 initial import
mandel
parents:
diff changeset
914 return blockingMappedReduced(sequence, functor, reducedFunctor, options.value());
e78566595089 initial import
mandel
parents:
diff changeset
915 }
e78566595089 initial import
mandel
parents:
diff changeset
916
e78566595089 initial import
mandel
parents:
diff changeset
917 private native static <U, V, T> U blockingMappedReduced(java.util.Collection<T> sequence, MappedFunctor<V, T> functor, ReducedFunctor<U, V> reducedFunctor, int options);
e78566595089 initial import
mandel
parents:
diff changeset
918
e78566595089 initial import
mandel
parents:
diff changeset
919 /**
e78566595089 initial import
mandel
parents:
diff changeset
920 * An implementation of this interface is given to one of QtConcurrent's filtered() methods.
e78566595089 initial import
mandel
parents:
diff changeset
921 * The filter method if this interface is called for each item in a java.util.Collection.
e78566595089 initial import
mandel
parents:
diff changeset
922 *
e78566595089 initial import
mandel
parents:
diff changeset
923 */
e78566595089 initial import
mandel
parents:
diff changeset
924 public interface FilteredFunctor<T> {
e78566595089 initial import
mandel
parents:
diff changeset
925
e78566595089 initial import
mandel
parents:
diff changeset
926 /**
e78566595089 initial import
mandel
parents:
diff changeset
927 * This method is called for each item in a java.util.Collection. The items for which
e78566595089 initial import
mandel
parents:
diff changeset
928 * this method returns true are removed from the collection.
e78566595089 initial import
mandel
parents:
diff changeset
929 */
e78566595089 initial import
mandel
parents:
diff changeset
930 public boolean filter(T object);
e78566595089 initial import
mandel
parents:
diff changeset
931 }
e78566595089 initial import
mandel
parents:
diff changeset
932
e78566595089 initial import
mandel
parents:
diff changeset
933 /**
e78566595089 initial import
mandel
parents:
diff changeset
934 * Calls filterFunctor's filtered() method once for each item in sequence and returns a new Sequence of kept items. If filterFunction returns true, a copy of the item is put in the new Sequence. Otherwise, the item will not appear in the new Sequence.
e78566595089 initial import
mandel
parents:
diff changeset
935 */
e78566595089 initial import
mandel
parents:
diff changeset
936 public native static <T> QFuture<T> filtered(java.util.Collection<T> sequence, FilteredFunctor<T> filteredFunctor);
e78566595089 initial import
mandel
parents:
diff changeset
937
e78566595089 initial import
mandel
parents:
diff changeset
938 /**
e78566595089 initial import
mandel
parents:
diff changeset
939 * Calls filterFunctor's filtered() method once for each item in sequence and returns a new Sequence of kept items. If filterFunction returns true, a copy of the item is put in the new Sequence. Otherwise, the item will not appear in the new Sequence.
e78566595089 initial import
mandel
parents:
diff changeset
940 */
e78566595089 initial import
mandel
parents:
diff changeset
941 public native static <T> java.util.List<T> blockingFiltered(java.util.Collection<T> sequence, FilteredFunctor<T> filteredFunctor);
e78566595089 initial import
mandel
parents:
diff changeset
942
e78566595089 initial import
mandel
parents:
diff changeset
943
e78566595089 initial import
mandel
parents:
diff changeset
944 /**
e78566595089 initial import
mandel
parents:
diff changeset
945 * This is an overloaded method provided for convenience. It is equivalent of calling filteredReduced(sequence, filteredFunctor, ReduceOption.UnorderedReduce, ReduceOption.Seq This is an overloaded method provided for convenience. It is equivalent of calling filteredReduced)
e78566595089 initial import
mandel
parents:
diff changeset
946 */
e78566595089 initial import
mandel
parents:
diff changeset
947 public static <U, T> QFuture<U> filteredReduced(java.util.Collection<T> sequence, FilteredFunctor<T> filteredFunctor, ReducedFunctor<U, T> reducedFunctor) {
e78566595089 initial import
mandel
parents:
diff changeset
948 return filteredReduced(sequence, filteredFunctor, reducedFunctor, ReduceOption.UnorderedReduce, ReduceOption.SequentialReduce);
e78566595089 initial import
mandel
parents:
diff changeset
949 }
e78566595089 initial import
mandel
parents:
diff changeset
950
e78566595089 initial import
mandel
parents:
diff changeset
951 /**
e78566595089 initial import
mandel
parents:
diff changeset
952 * Calls filterFunction once for each item in sequence. If filterFunction returns true for an item, that item is then passed to reduceFunction. In other words, the return value is the result of reduceFunction for each item where filterFunction returns true.
e78566595089 initial import
mandel
parents:
diff changeset
953 * <p>
e78566595089 initial import
mandel
parents:
diff changeset
954 * Note that while filterFunction is called concurrently, only one thread at a time will call reduceFunction. The order in which reduceFunction is called is undefined if reduceOptions is QtConcurrent::UnorderedReduce. If reduceOptions is QtConcurrent::OrderedReduce, reduceFunction is called in the order of the original sequence.
e78566595089 initial import
mandel
parents:
diff changeset
955 */
e78566595089 initial import
mandel
parents:
diff changeset
956 public static <U, T> QFuture<U> filteredReduced(java.util.Collection<T> sequence, FilteredFunctor<T> filteredFunctor, ReducedFunctor<U, T> reducedFunctor, ReduceOption ... options) {
e78566595089 initial import
mandel
parents:
diff changeset
957 return filteredReduced(sequence, filteredFunctor, reducedFunctor, new ReduceOptions(options));
e78566595089 initial import
mandel
parents:
diff changeset
958 }
e78566595089 initial import
mandel
parents:
diff changeset
959
e78566595089 initial import
mandel
parents:
diff changeset
960 /**
e78566595089 initial import
mandel
parents:
diff changeset
961 * Calls filterFunction once for each item in sequence. If filterFunction returns true for an item, that item is then passed to reduceFunction. In other words, the return value is the result of reduceFunction for each item where filterFunction returns true.
e78566595089 initial import
mandel
parents:
diff changeset
962 * <p>
e78566595089 initial import
mandel
parents:
diff changeset
963 * Note that while filterFunction is called concurrently, only one thread at a time will call reduceFunction. The order in which reduceFunction is called is undefined if reduceOptions is QtConcurrent::UnorderedReduce. If reduceOptions is QtConcurrent::OrderedReduce, reduceFunction is called in the order of the original sequence.
e78566595089 initial import
mandel
parents:
diff changeset
964 */
e78566595089 initial import
mandel
parents:
diff changeset
965 public static <U, T> QFuture<U> filteredReduced(java.util.Collection<T> sequence, FilteredFunctor<T> filteredFunctor, ReducedFunctor<U, T> reducedFunctor, ReduceOptions options) {
e78566595089 initial import
mandel
parents:
diff changeset
966 return filteredReduced(sequence, filteredFunctor, reducedFunctor, options.value());
e78566595089 initial import
mandel
parents:
diff changeset
967 }
e78566595089 initial import
mandel
parents:
diff changeset
968 private native static <U, T> QFuture<U> filteredReduced(java.util.Collection<T> sequence, FilteredFunctor<T> filteredFunctor, ReducedFunctor<U, T> reducedFunctor, int options);
e78566595089 initial import
mandel
parents:
diff changeset
969
e78566595089 initial import
mandel
parents:
diff changeset
970 /**
e78566595089 initial import
mandel
parents:
diff changeset
971 * This is an overloaded method provided for convenience. It is the equivalent of calling blockingFilteredReduced(sequence, filteredFunctor, reducedFunctor, ReduceOption.UnorderedReduce, ReduceOption.SequentialReduce)
e78566595089 initial import
mandel
parents:
diff changeset
972 */
e78566595089 initial import
mandel
parents:
diff changeset
973 public static <U, T> U blockingFilteredReduced(java.util.Collection<T> sequence, FilteredFunctor<T> filteredFunctor, ReducedFunctor<U, T> reducedFunctor) {
e78566595089 initial import
mandel
parents:
diff changeset
974 return blockingFilteredReduced(sequence, filteredFunctor, reducedFunctor, ReduceOption.UnorderedReduce, ReduceOption.SequentialReduce);
e78566595089 initial import
mandel
parents:
diff changeset
975 }
e78566595089 initial import
mandel
parents:
diff changeset
976
e78566595089 initial import
mandel
parents:
diff changeset
977 /**
e78566595089 initial import
mandel
parents:
diff changeset
978 * Calls filterFunction once for each item in sequence. If filterFunction returns true for an item, that item is then passed to reduceFunction. In other words, the return value is the result of reduceFunction for each item where filterFunction returns true.
e78566595089 initial import
mandel
parents:
diff changeset
979 * <p>
e78566595089 initial import
mandel
parents:
diff changeset
980 * Note that while filterFunction is called concurrently, only one thread at a time will call reduceFunction. The order in which reduceFunction is called is undefined if reduceOptions is QtConcurrent::UnorderedReduce. If reduceOptions is QtConcurrent::OrderedReduce, reduceFunction is called in the order of the original sequence.
e78566595089 initial import
mandel
parents:
diff changeset
981 */
e78566595089 initial import
mandel
parents:
diff changeset
982 public static <U, T> U blockingFilteredReduced(java.util.Collection<T> sequence, FilteredFunctor<T> filteredFunctor, ReducedFunctor<U, T> reducedFunctor, ReduceOption ... options) {
e78566595089 initial import
mandel
parents:
diff changeset
983 return blockingFilteredReduced(sequence, filteredFunctor, reducedFunctor, new ReduceOptions(options));
e78566595089 initial import
mandel
parents:
diff changeset
984 }
e78566595089 initial import
mandel
parents:
diff changeset
985
e78566595089 initial import
mandel
parents:
diff changeset
986 /**
e78566595089 initial import
mandel
parents:
diff changeset
987 * Calls filterFunction once for each item in sequence. If filterFunction returns true for an item, that item is then passed to reduceFunction. In other words, the return value is the result of reduceFunction for each item where filterFunction returns true.
e78566595089 initial import
mandel
parents:
diff changeset
988 * <p>
e78566595089 initial import
mandel
parents:
diff changeset
989 * Note that while filterFunction is called concurrently, only one thread at a time will call reduceFunction. The order in which reduceFunction is called is undefined if reduceOptions is QtConcurrent::UnorderedReduce. If reduceOptions is QtConcurrent::OrderedReduce, reduceFunction is called in the order of the original sequence.
e78566595089 initial import
mandel
parents:
diff changeset
990 */
e78566595089 initial import
mandel
parents:
diff changeset
991 public static <U, T> U blockingFilteredReduced(java.util.Collection<T> sequence, FilteredFunctor<T> filteredFunctor, ReducedFunctor<U, T> reducedFunctor, ReduceOptions options) {
e78566595089 initial import
mandel
parents:
diff changeset
992 return blockingFilteredReduced(sequence, filteredFunctor, reducedFunctor, options.value());
e78566595089 initial import
mandel
parents:
diff changeset
993 }
e78566595089 initial import
mandel
parents:
diff changeset
994
e78566595089 initial import
mandel
parents:
diff changeset
995 private native static <U, T> U blockingFilteredReduced(java.util.Collection<T> sequence, FilteredFunctor<T> filteredFunctor, ReducedFunctor<U, T> reducedFunctor, int options);
e78566595089 initial import
mandel
parents:
diff changeset
996
e78566595089 initial import
mandel
parents:
diff changeset
997 /**
e78566595089 initial import
mandel
parents:
diff changeset
998 * Executes the method <tt>m</tt> through the QtConcurrent framework with the given arguments. The returned QFuture object's result wil be the
e78566595089 initial import
mandel
parents:
diff changeset
999 * return value of <tt>m</tt>. Note that this method does not accept function that return void. use runVoidMethod() for this.
e78566595089 initial import
mandel
parents:
diff changeset
1000 */
e78566595089 initial import
mandel
parents:
diff changeset
1001 public static <T> QFuture<T> run(Object _this, java.lang.reflect.Method m, Object ... args) {
e78566595089 initial import
mandel
parents:
diff changeset
1002 if (m.getReturnType() == null || m.getReturnType().equals(Void.TYPE))
e78566595089 initial import
mandel
parents:
diff changeset
1003 throw new IllegalArgumentException("Cannot call run on method returning void. Use 'runVoidMethod' instead.");
e78566595089 initial import
mandel
parents:
diff changeset
1004
e78566595089 initial import
mandel
parents:
diff changeset
1005 return runPrivate(_this, m.getDeclaringClass(), m, args, qt.internal.QtJambiInternal.resolveConversionSchema(m.getParameterTypes(), m.getParameterTypes()), qt.internal.QtJambiInternal.typeConversionCode(m.getReturnType()));
e78566595089 initial import
mandel
parents:
diff changeset
1006 }
e78566595089 initial import
mandel
parents:
diff changeset
1007 private native static <T> QFuture<T> runPrivate(Object _this, Class<?> declaringClass, java.lang.reflect.Method m, Object args[], int conversionScheme[], byte returnType);
e78566595089 initial import
mandel
parents:
diff changeset
1008
e78566595089 initial import
mandel
parents:
diff changeset
1009 /**
e78566595089 initial import
mandel
parents:
diff changeset
1010 * Executes the method <tt>m</tt> with the given arguments using the QtConcurrent framework. Notice that runVoidMethod() does not
e78566595089 initial import
mandel
parents:
diff changeset
1011 * accept methods that has a return value. Use the run() method for this purpose.
e78566595089 initial import
mandel
parents:
diff changeset
1012 */
e78566595089 initial import
mandel
parents:
diff changeset
1013 public static QFutureVoid runVoidMethod(Object _this, java.lang.reflect.Method m, Object ... args) {
e78566595089 initial import
mandel
parents:
diff changeset
1014 if (m.getReturnType() != null && !m.getReturnType().equals(Void.TYPE))
e78566595089 initial import
mandel
parents:
diff changeset
1015 throw new IllegalArgumentException("Cannot call runVoidMethod on method returning non-void type. Use 'run' instead.");
e78566595089 initial import
mandel
parents:
diff changeset
1016
e78566595089 initial import
mandel
parents:
diff changeset
1017 return runVoidMethodPrivate(_this, m.getDeclaringClass(), m, args, qt.internal.QtJambiInternal.resolveConversionSchema(m.getParameterTypes(), m.getParameterTypes()));
e78566595089 initial import
mandel
parents:
diff changeset
1018 }
e78566595089 initial import
mandel
parents:
diff changeset
1019 private native static QFutureVoid runVoidMethodPrivate(Object _this, Class<?> declaringClass, java.lang.reflect.Method m, Object args[], int conversionScheme[]);
e78566595089 initial import
mandel
parents:
diff changeset
1020
e78566595089 initial import
mandel
parents:
diff changeset
1021
e78566595089 initial import
mandel
parents:
diff changeset
1022 }// class