blob: 825f808ba82829f5fc395b997a1ece8a7322b75b [file] [log] [blame] [edit]
package jnr.posix;
import jnr.ffi.Pointer;
import jnr.ffi.mapper.DataConverter;
import jnr.ffi.mapper.FromNativeContext;
import jnr.ffi.mapper.ToNativeContext;
public final class HANDLE {
public static final long INVALID_HANDLE_VALUE = -1L;
private final Pointer pointer;
public HANDLE(Pointer pointer) {
this.pointer = pointer;
}
public final Pointer toPointer() {
return pointer;
}
public final boolean isValid() {
return pointer.address() != (INVALID_HANDLE_VALUE & jnr.ffi.Runtime.getSystemRuntime().addressMask());
}
public static HANDLE valueOf(Pointer value) {
return new HANDLE(value);
}
public static HANDLE valueOf(long value) {
return new HANDLE(jnr.ffi.Runtime.getSystemRuntime().getMemoryManager().newPointer(value));
}
public static final DataConverter<HANDLE, Pointer> Converter = new DataConverter<HANDLE, Pointer>() {
public Pointer toNative(HANDLE value, ToNativeContext context) {
return value != null ? value.pointer : null;
}
public HANDLE fromNative(Pointer nativeValue, FromNativeContext context) {
return nativeValue != null ? new HANDLE(nativeValue) : null;
}
public Class<Pointer> nativeType() {
return Pointer.class;
}
};
}