
io.qt.core.QThread Maven / Gradle / Ivy
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;
}
/**
*
*/
public final PrivateSignal0 finished = new PrivateSignal0();
/**
*
*/
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);
}
/**
*
*/
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);
/**
*
*/
@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);
/**
*
*/
@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);
/**
*
*/
@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);
/**
*
*/
@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);
/**
*
*/
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);
/**
*
*/
@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);
/**
*
*/
@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);
/**
*
*/
public native static io.qt.core.QThread currentThread();
/**
* See QThread::currentThreadId()
*/
public native static long currentThreadId();
/**
* See QThread::idealThreadCount()
*/
public native static int idealThreadCount();
/**
*
*/
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);
/**
*
*/
public native static void sleep(int arg__1);
/**
*
*/
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;
}
}