
com.mindoo.domino.jna.utils.ServerConsoleThread Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of domino-jna Show documentation
Show all versions of domino-jna Show documentation
Java project to access the HCL Domino C API using Java Native Access (JNA)
package com.mindoo.domino.jna.utils;
import java.util.concurrent.Callable;
import java.util.concurrent.LinkedBlockingQueue;
import com.mindoo.domino.jna.errors.NotesErrorUtils;
import com.mindoo.domino.jna.gc.NotesGC;
import com.mindoo.domino.jna.gc.NotesGC.IDisposableCustomValue;
import com.mindoo.domino.jna.internal.Mem32;
import com.mindoo.domino.jna.internal.Mem64;
import com.mindoo.domino.jna.internal.NotesNativeAPI32;
import com.mindoo.domino.jna.internal.NotesNativeAPI64;
import com.mindoo.domino.jna.internal.structs.ConsoleEntry32;
import com.mindoo.domino.jna.internal.structs.ConsoleEntry64;
import com.sun.jna.Pointer;
import com.sun.jna.ptr.IntByReference;
import com.sun.jna.ptr.LongByReference;
public class ServerConsoleThread extends Thread implements IDisposableCustomValue {
private long m_hQueue64;
private int m_hQueue32;
private boolean m_queueDisposed;
private LinkedBlockingQueue m_msgQueue = new LinkedBlockingQueue<>();
ServerConsoleThread(long hQueue64) {
m_hQueue64 = hQueue64;
}
ServerConsoleThread(int hQueue32) {
m_hQueue32 = hQueue32;
}
@Override
public void dispose() {
if (m_queueDisposed) {
return;
}
short result;
if (PlatformUtils.is64Bit()) {
result = NotesNativeAPI64.get().QueueDelete(m_hQueue64);
}
else {
result = NotesNativeAPI32.get().QueueDelete(m_hQueue32);
}
NotesErrorUtils.checkResult(result);
m_queueDisposed = true;
}
public LinkedBlockingQueue getQueue() {
return m_msgQueue;
}
@Override
public void run() {
NotesInitUtils.notesInitThread();
try {
NotesGC.runWithAutoGC(new Callable
© 2015 - 2025 Weber Informatics LLC | Privacy Policy