All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.qt.core.QThread Maven / Gradle / Ivy

There is a newer version: 6.3.0
Show newest version
package io.qt.core;


/**
 * 

Platform-independent way to manage threads

*

Java wrapper for Qt class QThread

*/ public class QThread extends io.qt.core.QObject { @io.qt.QtPropertyMember(enabled=false) private Object __rcEventDispatcher = null; /** * This variable stores the meta-object for the class. */ public static final io.qt.core.QMetaObject staticMetaObject = io.qt.core.QMetaObject.forType(QThread.class); /** *

Java wrapper for Qt enum QThread::Priority

*/ @io.qt.QtUnlistedEnum public enum Priority implements io.qt.QtEnumerator { IdlePriority(0), LowestPriority(1), LowPriority(2), NormalPriority(3), HighPriority(4), HighestPriority(5), TimeCriticalPriority(6), InheritPriority(7); private Priority(int value) { this.value = value; } /** * {@inheritDoc} */ public int value() { return value; } /** * Returns the corresponding enum entry for the given value. * @param value * @return enum entry */ public static Priority resolve(int value) { switch (value) { case 0: return IdlePriority; case 1: return LowestPriority; case 2: return LowPriority; case 3: return NormalPriority; case 4: return HighPriority; case 5: return HighestPriority; case 6: return TimeCriticalPriority; case 7: return InheritPriority; default: throw new io.qt.QNoSuchEnumValueException(value); } } private final int value; } /** *

See QThread::finished()

*/ public final PrivateSignal0 finished = new PrivateSignal0(); /** *

See QThread::started()

*/ public final PrivateSignal0 started = new PrivateSignal0(); /** *

Overloaded constructor for {@link #QThread(io.qt.core.QObject)} * with parent = null.

*/ public QThread() { this((io.qt.core.QObject)null); } /** *

See QThread::QThread(QObject*)

*/ public QThread(io.qt.core.QObject parent){ super((QPrivateConstructor)null); initialize_native(this, parent); initialize(null); } private native static void initialize_native(QThread instance, io.qt.core.QObject parent); /** *

See QThread::eventDispatcher()const

*/ @io.qt.QtUninvokable public final io.qt.core.QAbstractEventDispatcher eventDispatcher(){ return eventDispatcher_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)); } @io.qt.QtUninvokable private native io.qt.core.QAbstractEventDispatcher eventDispatcher_native_constfct(long __this__nativeId); /** *

See QThread::exec()

*/ @io.qt.QtUninvokable protected final int exec(){ return exec_native(QtJambi_LibraryUtilities.internal.nativeId(this)); } @io.qt.QtUninvokable private native int exec_native(long __this__nativeId); /** *

Overloaded function for {@link #exit(int)} * with retcode = 0.

*/ public final void exit() { exit((int)0); } /** *

See QThread::exit(int)

*/ public final void exit(int retcode){ exit_native_int(QtJambi_LibraryUtilities.internal.nativeId(this), retcode); } private native void exit_native_int(long __this__nativeId, int retcode); /** *

See QThread::isFinished()const

*/ @io.qt.QtUninvokable public final boolean isFinished(){ return isFinished_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)); } @io.qt.QtUninvokable private native boolean isFinished_native_constfct(long __this__nativeId); /** *

See QThread::isInterruptionRequested()const

*/ @io.qt.QtUninvokable public final boolean isInterruptionRequested(){ return isInterruptionRequested_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)); } @io.qt.QtUninvokable private native boolean isInterruptionRequested_native_constfct(long __this__nativeId); /** *

See QThread::isRunning()const

*/ @io.qt.QtUninvokable public final boolean isRunning(){ return isRunning_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)); } @io.qt.QtUninvokable private native boolean isRunning_native_constfct(long __this__nativeId); /** *

See QThread::loopLevel()const

*/ @io.qt.QtUninvokable public final int loopLevel(){ return loopLevel_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)); } @io.qt.QtUninvokable private native int loopLevel_native_constfct(long __this__nativeId); /** *

See QThread::priority()const

*/ @io.qt.QtUninvokable public final io.qt.core.QThread.Priority priority(){ return io.qt.core.QThread.Priority.resolve(priority_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this))); } @io.qt.QtUninvokable private native int priority_native_constfct(long __this__nativeId); /** *

See QThread::quit()

*/ public final void quit(){ quit_native(QtJambi_LibraryUtilities.internal.nativeId(this)); } private native void quit_native(long __this__nativeId); /** *

See QThread::requestInterruption()

*/ @io.qt.QtUninvokable public final void requestInterruption(){ requestInterruption_native(QtJambi_LibraryUtilities.internal.nativeId(this)); Thread t = javaThread(); if(t!=null) t.interrupt(); } @io.qt.QtUninvokable private native void requestInterruption_native(long __this__nativeId); /** *

See QThread::setEventDispatcher(QAbstractEventDispatcher*)

*/ @io.qt.QtUninvokable public final void setEventDispatcher(io.qt.core.QAbstractEventDispatcher eventDispatcher){ setEventDispatcher_native_QAbstractEventDispatcher_ptr(QtJambi_LibraryUtilities.internal.nativeId(this), QtJambi_LibraryUtilities.internal.checkedNativeId(eventDispatcher)); __rcEventDispatcher = eventDispatcher; } @io.qt.QtUninvokable private native void setEventDispatcher_native_QAbstractEventDispatcher_ptr(long __this__nativeId, long eventDispatcher); /** *

See QThread::setPriority(QThread::Priority)

*/ @io.qt.QtUninvokable public final void setPriority(io.qt.core.QThread.Priority priority){ setPriority_native_QThread_Priority(QtJambi_LibraryUtilities.internal.nativeId(this), priority.value()); } @io.qt.QtUninvokable private native void setPriority_native_QThread_Priority(long __this__nativeId, int priority); /** *

See QThread::setStackSize(uint)

*/ @io.qt.QtUninvokable public final void setStackSize(int stackSize){ setStackSize_native_uint(QtJambi_LibraryUtilities.internal.nativeId(this), stackSize); } @io.qt.QtUninvokable private native void setStackSize_native_uint(long __this__nativeId, int stackSize); /** *

See QThread::stackSize()const

*/ @io.qt.QtUninvokable public final int stackSize(){ return stackSize_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)); } @io.qt.QtUninvokable private native int stackSize_native_constfct(long __this__nativeId); /** *

Overloaded function for {@link #start(io.qt.core.QThread.Priority)} * with arg__1 = io.qt.core.QThread.Priority.InheritPriority.

*/ public final void start() { start(io.qt.core.QThread.Priority.InheritPriority); } /** *

See QThread::start(QThread::Priority)

*/ public final void start(io.qt.core.QThread.Priority arg__1){ start_native_QThread_Priority(QtJambi_LibraryUtilities.internal.nativeId(this), arg__1.value()); } private native void start_native_QThread_Priority(long __this__nativeId, int arg__1); /** *

See QThread::terminate()

*/ public final void terminate(){ terminate_native(QtJambi_LibraryUtilities.internal.nativeId(this)); } private native void terminate_native(long __this__nativeId); /** *

Overloaded function for {@link #join(io.qt.core.QDeadlineTimer)} * with deadline = new QDeadlineTimer(QDeadlineTimer.ForeverConstant.Forever).

*/ @io.qt.QtUninvokable public final boolean join() { return join(new QDeadlineTimer(QDeadlineTimer.ForeverConstant.Forever)); } /** *

See QThread::wait(QDeadlineTimer)

*/ @io.qt.QtUninvokable public final boolean join(io.qt.core.QDeadlineTimer deadline){ return join_native_QDeadlineTimer(QtJambi_LibraryUtilities.internal.nativeId(this), QtJambi_LibraryUtilities.internal.checkedNativeId(deadline)); } @io.qt.QtUninvokable private native boolean join_native_QDeadlineTimer(long __this__nativeId, long deadline); /** *

See QThread::wait(ulong)

*/ @io.qt.QtUninvokable public final boolean join(int time){ return join_native_unsigned_long(QtJambi_LibraryUtilities.internal.nativeId(this), time); } @io.qt.QtUninvokable private native boolean join_native_unsigned_long(long __this__nativeId, int time); /** *

See QObject::event(QEvent*)

*/ @io.qt.QtUninvokable public boolean event(io.qt.core.QEvent event){ return event_native_QEvent_ptr(QtJambi_LibraryUtilities.internal.nativeId(this), QtJambi_LibraryUtilities.internal.checkedNativeId(event)); } @io.qt.QtUninvokable private native boolean event_native_QEvent_ptr(long __this__nativeId, long event); /** *

See QThread::run()

*/ @io.qt.QtUninvokable protected void run(){ run_native(QtJambi_LibraryUtilities.internal.nativeId(this)); } @io.qt.QtUninvokable private native void run_native(long __this__nativeId); /** *

See QThread::currentThread()

*/ public native static io.qt.core.QThread currentThread(); /** *

See QThread::currentThreadId()

*/ public native static long currentThreadId(); /** *

See QThread::idealThreadCount()

*/ public native static int idealThreadCount(); /** *

See QThread::msleep(ulong)

*/ public native static void msleep(int arg__1); /** *

Overloaded function for {@link #setTerminationEnabled(boolean)} * with enabled = true.

*/ protected static void setTerminationEnabled() { setTerminationEnabled((boolean)true); } /** *

See QThread::setTerminationEnabled(bool)

*/ protected native static void setTerminationEnabled(boolean enabled); /** *

See QThread::sleep(ulong)

*/ public native static void sleep(int arg__1); /** *

See QThread::usleep(ulong)

*/ public native static void usleep(int arg__1); /** *

See QThread::yieldCurrentThread()

*/ public native static void yieldCurrentThread(); /** * Constructor for internal use only. * @param p expected to be null. */ @io.qt.NativeAccess protected QThread(QPrivateConstructor p) { super(p); } /** * Constructor for internal use only. * It is not allowed to call the declarative constructor from inside Java. */ @io.qt.NativeAccess protected QThread(QDeclarativeConstructor constructor) { super((QPrivateConstructor)null); initialize_native(this, constructor); } @io.qt.QtUninvokable private static native void initialize_native(QThread instance, QDeclarativeConstructor constructor); @io.qt.QtUninvokable static native void initialize(); public QThread(ThreadGroup group, String name, long stackSize, io.qt.core.QObject parent) { super((QPrivateConstructor)null); initialize_native(this, parent); initialize(group); if(name!=null) setName(name); if(stackSize>=0 && stackSize <= 0x0ffffffffL) setStackSize( (int)(stackSize & 0x0ffffffffL) ); } public static QThread create(Runnable runnable) { return create(null, runnable, null, -1, null); } public static QThread create(Runnable runnable, io.qt.core.QObject parent) { return create(null, runnable, null, -1, parent); } public static QThread create(Runnable runnable, long stackSize) { return create(null, runnable, null, stackSize, null); } public static QThread create(Runnable runnable, long stackSize, io.qt.core.QObject parent) { return create(null, runnable, null, stackSize, parent); } public static QThread create(ThreadGroup group, Runnable runnable, long stackSize) { return create(group, runnable, null, stackSize, null); } public static QThread create(ThreadGroup group, Runnable runnable, long stackSize, io.qt.core.QObject parent) { return create(group, runnable, null, stackSize, parent); } public static QThread create(ThreadGroup group, Runnable runnable, String name) { return create(group, runnable, name, -1, null); } public static QThread create(ThreadGroup group, Runnable runnable, String name, io.qt.core.QObject parent) { return create(group, runnable, name, -1, parent); } public static QThread create(ThreadGroup group, Runnable runnable, String name, long stackSize) { return create(group, runnable, name, stackSize, null); } public static QThread create(Runnable runnable, String name, long stackSize, io.qt.core.QObject parent) { return create(null, runnable, name, stackSize, parent); } public static QThread create(Runnable runnable, String name, long stackSize) { return create(null, runnable, name, stackSize, null); } public static QThread create(Runnable runnable, String name, io.qt.core.QObject parent) { return create(null, runnable, name, -1, parent); } public static QThread create(Runnable runnable, String name) { return create(null, runnable, name, -1, null); } public static QThread create(ThreadGroup group, Runnable runnable) { return create(group, runnable, null, -1, null); } public static QThread create(ThreadGroup group, Runnable runnable, String name, long stackSize, io.qt.core.QObject parent) { return new Runner(group, runnable, name, stackSize, parent); } private final static class Runner extends QThread{ Runner(ThreadGroup group, Runnable runnable, String name, long stackSize, QObject parent) { super(group, name, stackSize, parent); this.runnable = runnable; } private final Runnable runnable; @Override protected void run() { if(runnable!=null){ Thread thread = javaThread(); try{ runnable.run(); }catch(Throwable exn){ if(thread!=null) { Thread.UncaughtExceptionHandler handler = thread.getUncaughtExceptionHandler(); if(handler==null) { handler = Thread.getDefaultUncaughtExceptionHandler(); } if(handler==null) { exn.printStackTrace(); }else { handler.uncaughtException(thread, exn); } }else { exn.printStackTrace(); } } } } } public QThread(String name) { this(null, name, -1, null); } public QThread(ThreadGroup group) { this(group, null, -1, null); } public QThread(String name, io.qt.core.QObject parent) { this(null, name, -1, parent); } public QThread(ThreadGroup group, io.qt.core.QObject parent) { this(group, null, -1, parent); } public QThread(String name, long stackSize) { this(null, name, stackSize, null); } public QThread(ThreadGroup group, long stackSize) { this(group, null, stackSize, null); } public QThread(String name, long stackSize, io.qt.core.QObject parent) { this(null, name, stackSize, parent); } public QThread(ThreadGroup group, long stackSize, io.qt.core.QObject parent) { this(group, null, stackSize, parent); } public QThread(ThreadGroup group, String name, long stackSize) { this(group, name, stackSize, null); } public QThread(ThreadGroup group, String name, io.qt.core.QObject parent) { this(group, name, -1, parent); } public QThread(ThreadGroup group, String name) { this(group, name, -1, null); } private void initialize(ThreadGroup group) { if(group==null) group = Thread.currentThread().getThreadGroup(); __qt_initialize(group); } public final ThreadGroup getThreadGroup() { if(javaThread!=null) { return javaThread.getThreadGroup(); } return __qt_getThreadGroup(); } private native ThreadGroup __qt_getThreadGroup(); public void setName(String name) { if(!isRunning() && javaThread==null) __qt_setName(name); } private native void __qt_setName(String name); public final String getName() { if(javaThread!=null) { return javaThread.getName(); } return __qt_getName(); } private native String __qt_getName(); public void setDaemon(boolean daemon) { if(!isRunning() && javaThread==null) __qt_setDaemon(daemon); } private native void __qt_setDaemon(boolean daemon); public final boolean isDaemon() { if(javaThread!=null) { return javaThread.isDaemon(); } return __qt_isDaemon(); } private native boolean __qt_isDaemon(); public void setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler handler) { if(javaThread!=null) { javaThread.setUncaughtExceptionHandler(handler); }else { __qt_setUncaughtExceptionHandler(handler); } } private native void __qt_setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler handler); public final Thread.UncaughtExceptionHandler getUncaughtExceptionHandler() { if(javaThread!=null) { return javaThread.getUncaughtExceptionHandler(); } return __qt_getUncaughtExceptionHandler(); } private native Thread.UncaughtExceptionHandler __qt_getUncaughtExceptionHandler(); public void setContextClassLoader(ClassLoader cl) { if(javaThread!=null) { javaThread.setContextClassLoader(cl); }else { __qt_setContextClassLoader(cl); } } private native void __qt_setContextClassLoader(ClassLoader cl); public final ClassLoader getContextClassLoader() { if(javaThread!=null) { return javaThread.getContextClassLoader(); } return __qt_getContextClassLoader(); } private native ClassLoader __qt_getContextClassLoader(); private native void __qt_initialize(ThreadGroup group); private final Thread javaThread = null; public final Thread javaThread() { return javaThread==null ? __qt_javaThread() : javaThread; } private native Thread __qt_javaThread(); public static native QThread thread(Thread thread); public final boolean isAlive() { return isRunning(); } public final boolean isInterrupted() { if(javaThread!=null && javaThread.isInterrupted()) return true; return isInterruptionRequested(); } public static boolean interrupted() { return Thread.interrupted(); } public final void interrupt() { requestInterruption(); } private final static Object interruptible; static{ Object _interruptible = null; try { _interruptible = java.lang.reflect.Proxy.newProxyInstance( QThread.class.getClassLoader(), new Class[] { Class.forName("sun.nio.ch.Interruptible") }, (proxy, method, args)->{ if(args.length==1 && args[0] instanceof Thread) { Thread thread = (Thread)args[0]; if(thread.isAlive()) { QThread qthread = thread(thread); try(io.qt.internal.QtJambiInternal.Monitor monitor = io.qt.internal.QtJambiInternal.synchronizedNativeId(qthread)){ if(qthread!=null && !qthread.isDisposed() && !qthread.isInterruptionRequested()){ qthread.requestInterruption(); } } } } return null; }); } catch (Throwable e) { } interruptible = _interruptible; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy