
io.qt.core.QSharedMemory Maven / Gradle / Ivy
Show all versions of qtjambi Show documentation
package io.qt.core;
/**
* Access to a shared memory segment
* Java wrapper for Qt class QSharedMemory
*/
public class QSharedMemory extends io.qt.core.QObject
{
/**
* This variable stores the meta-object for the class.
*/
public static final io.qt.core.QMetaObject staticMetaObject = io.qt.core.QMetaObject.forType(QSharedMemory.class);
/**
* Java wrapper for Qt enum QSharedMemory::AccessMode
*/
@io.qt.QtUnlistedEnum
public enum AccessMode implements io.qt.QtEnumerator {
ReadOnly(0),
ReadWrite(1);
private AccessMode(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 AccessMode resolve(int value) {
switch (value) {
case 0: return ReadOnly;
case 1: return ReadWrite;
default: throw new io.qt.QNoSuchEnumValueException(value);
}
}
private final int value;
}
/**
* Java wrapper for Qt enum QSharedMemory::SharedMemoryError
*/
@io.qt.QtUnlistedEnum
public enum SharedMemoryError implements io.qt.QtEnumerator {
NoError(0),
PermissionDenied(1),
InvalidSize(2),
KeyError(3),
AlreadyExists(4),
NotFound(5),
LockError(6),
OutOfResources(7),
UnknownError(8);
private SharedMemoryError(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 SharedMemoryError resolve(int value) {
switch (value) {
case 0: return NoError;
case 1: return PermissionDenied;
case 2: return InvalidSize;
case 3: return KeyError;
case 4: return AlreadyExists;
case 5: return NotFound;
case 6: return LockError;
case 7: return OutOfResources;
case 8: return UnknownError;
default: throw new io.qt.QNoSuchEnumValueException(value);
}
}
private final int value;
}
/**
* Overloaded constructor for {@link #QSharedMemory(io.qt.core.QObject)}
* with parent = null
.
*/
public QSharedMemory() {
this((io.qt.core.QObject)null);
}
/**
* See QSharedMemory::QSharedMemory(QObject*)
*/
public QSharedMemory(io.qt.core.QObject parent){
super((QPrivateConstructor)null);
initialize_native(this, parent);
}
private native static void initialize_native(QSharedMemory instance, io.qt.core.QObject parent);
/**
* Overloaded constructor for {@link #QSharedMemory(java.lang.String, io.qt.core.QObject)}
* with parent = null
.
*/
public QSharedMemory(java.lang.String key) {
this(key, (io.qt.core.QObject)null);
}
/**
* See QSharedMemory::QSharedMemory(QString,QObject*)
*/
public QSharedMemory(java.lang.String key, io.qt.core.QObject parent){
super((QPrivateConstructor)null);
initialize_native(this, key, parent);
}
private native static void initialize_native(QSharedMemory instance, java.lang.String key, io.qt.core.QObject parent);
/**
* Overloaded function for {@link #attach(io.qt.core.QSharedMemory.AccessMode)}
* with mode = io.qt.core.QSharedMemory.AccessMode.ReadWrite
.
*/
@io.qt.QtUninvokable
public final boolean attach() {
return attach(io.qt.core.QSharedMemory.AccessMode.ReadWrite);
}
/**
* See QSharedMemory::attach(QSharedMemory::AccessMode)
*/
@io.qt.QtUninvokable
public final boolean attach(io.qt.core.QSharedMemory.AccessMode mode){
boolean __qt_return_value = attach_native_QSharedMemory_AccessMode(QtJambi_LibraryUtilities.internal.nativeId(this), mode.value());
if(__qt_return_value){
__qt_accessMode = mode;
}
return __qt_return_value;
}
@io.qt.QtUninvokable
private native boolean attach_native_QSharedMemory_AccessMode(long __this__nativeId, int mode);
/**
* Overloaded function for {@link #create(long, io.qt.core.QSharedMemory.AccessMode)}
* with mode = io.qt.core.QSharedMemory.AccessMode.ReadWrite
.
*/
@io.qt.QtUninvokable
public final boolean create(long size) {
return create(size, io.qt.core.QSharedMemory.AccessMode.ReadWrite);
}
/**
* See QSharedMemory::create(qsizetype,QSharedMemory::AccessMode)
*/
@io.qt.QtUninvokable
public final boolean create(long size, io.qt.core.QSharedMemory.AccessMode mode){
boolean __qt_return_value = create_native_qsizetype_QSharedMemory_AccessMode(QtJambi_LibraryUtilities.internal.nativeId(this), size, mode.value());
if(__qt_return_value){
__qt_accessMode = mode;
}
return __qt_return_value;
}
@io.qt.QtUninvokable
private native boolean create_native_qsizetype_QSharedMemory_AccessMode(long __this__nativeId, long size, int mode);
/**
*
*/
@io.qt.QtUninvokable
private final java.nio.ByteBuffer data(){
return data_native(QtJambi_LibraryUtilities.internal.nativeId(this));
}
@io.qt.QtUninvokable
private native java.nio.ByteBuffer data_native(long __this__nativeId);
/**
*
*/
@io.qt.QtUninvokable
public final boolean detach(){
return detach_native(QtJambi_LibraryUtilities.internal.nativeId(this));
}
@io.qt.QtUninvokable
private native boolean detach_native(long __this__nativeId);
/**
* See QSharedMemory::error()const
*/
@io.qt.QtUninvokable
public final io.qt.core.QSharedMemory.SharedMemoryError error(){
return io.qt.core.QSharedMemory.SharedMemoryError.resolve(error_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)));
}
@io.qt.QtUninvokable
private native int error_native_constfct(long __this__nativeId);
/**
* See QSharedMemory::errorString()const
*/
@io.qt.QtUninvokable
public final java.lang.String errorString(){
return errorString_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this));
}
@io.qt.QtUninvokable
private native java.lang.String errorString_native_constfct(long __this__nativeId);
/**
* See QSharedMemory::isAttached()const
*/
@io.qt.QtUninvokable
public final boolean isAttached(){
return isAttached_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this));
}
@io.qt.QtUninvokable
private native boolean isAttached_native_constfct(long __this__nativeId);
/**
*
*/
@io.qt.QtUninvokable
public final java.lang.String key(){
return key_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this));
}
@io.qt.QtUninvokable
private native java.lang.String key_native_constfct(long __this__nativeId);
/**
*
*/
@io.qt.QtUninvokable
private final boolean lock(){
return lock_native(QtJambi_LibraryUtilities.internal.nativeId(this));
}
@io.qt.QtUninvokable
private native boolean lock_native(long __this__nativeId);
/**
* See QSharedMemory::nativeKey()const
*/
@io.qt.QtUninvokable
public final java.lang.String nativeKey(){
return nativeKey_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this));
}
@io.qt.QtUninvokable
private native java.lang.String nativeKey_native_constfct(long __this__nativeId);
/**
* See QSharedMemory::setKey(QString)
*/
@io.qt.QtUninvokable
public final void setKey(java.lang.String key){
setKey_native_cref_QString(QtJambi_LibraryUtilities.internal.nativeId(this), key);
}
@io.qt.QtUninvokable
private native void setKey_native_cref_QString(long __this__nativeId, java.lang.String key);
/**
* See QSharedMemory::setNativeKey(QString)
*/
@io.qt.QtUninvokable
public final void setNativeKey(java.lang.String key){
setNativeKey_native_cref_QString(QtJambi_LibraryUtilities.internal.nativeId(this), key);
}
@io.qt.QtUninvokable
private native void setNativeKey_native_cref_QString(long __this__nativeId, java.lang.String key);
/**
* See QSharedMemory::size()const
*/
@io.qt.QtUninvokable
public final long size(){
return size_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this));
}
@io.qt.QtUninvokable
private native long size_native_constfct(long __this__nativeId);
/**
*
*/
@io.qt.QtUninvokable
private final boolean unlock(){
return unlock_native(QtJambi_LibraryUtilities.internal.nativeId(this));
}
@io.qt.QtUninvokable
private native boolean unlock_native(long __this__nativeId);
/**
* Constructor for internal use only.
* @param p expected to be null
.
*/
@io.qt.NativeAccess
protected QSharedMemory(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 QSharedMemory(QDeclarativeConstructor constructor) {
super((QPrivateConstructor)null);
initialize_native(this, constructor);
}
@io.qt.QtUninvokable
private static native void initialize_native(QSharedMemory instance, QDeclarativeConstructor constructor);
private static class CleanTask implements Runnable{
private CleanTask(QSharedMemory sharedMemory) {
super();
this.sharedMemory = sharedMemory;
}
@Override
public void run() {
if(!isClosed) {
isClosed = true;
try{
if(!sharedMemory.isDisposed())
sharedMemory.unlock();
}finally {
sharedMemory.__qt_isInUse = false;
}
}
}
private final QSharedMemory sharedMemory;
private boolean isClosed = false;
}
public static class DataAccess implements AutoCloseable{
private final QSharedMemory sharedMemory;
private final io.qt.InternalAccess.Cleanable cleanable;
DataAccess(QSharedMemory sharedMemory){
this.sharedMemory = sharedMemory;
cleanable = QtJambi_LibraryUtilities.internal.registerCleaner(this, new CleanTask(sharedMemory));
}
@Override
public void close(){
cleanable.clean();
}
@io.qt.QtUninvokable
public java.nio.ByteBuffer data() {
if(!sharedMemory.__qt_isInUse) {
throw new IllegalStateException();
}
java.nio.ByteBuffer result = sharedMemory.data();
if(sharedMemory.__qt_accessMode==AccessMode.ReadOnly){
result = result.asReadOnlyBuffer();
}
return result;
}
}
private AccessMode __qt_accessMode = AccessMode.ReadOnly;
private boolean __qt_isInUse;
public DataAccess access() throws IllegalStateException{
if(this.isAttached() && !__qt_isInUse && lock()) {
__qt_isInUse = true;
return new DataAccess(this);
}
throw new IllegalStateException();
}
}