jnr.posix.NativeTimes Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jnr-unixsocket-nodep Show documentation
Show all versions of jnr-unixsocket-nodep Show documentation
com.github.jnr:jnr-unixsocket with orh.objectweb.asm shaded
The newest version!
package jnr.posix;
import jnr.constants.platform.Errno;
import jnr.ffi.LastError;
import jnr.ffi.Memory;
import jnr.ffi.Pointer;
import jnr.ffi.StructLayout;
/**
*
*/
final class NativeTimes implements Times {
static final class Layout extends StructLayout {
public final clock_t tms_utime = new clock_t();
public final clock_t tms_stime = new clock_t();
public final clock_t tms_cutime = new clock_t();
public final clock_t tms_cstime = new clock_t();
Layout(jnr.ffi.Runtime runtime) {
super(runtime);
}
}
private static final Layout layout = new Layout(jnr.ffi.Runtime.getSystemRuntime());
final Pointer memory;
static NativeTimes times(BaseNativePOSIX posix) {
NativeTimes tms = new NativeTimes(posix);
return posix.libc().times(tms) == -1 ? null : tms;
}
NativeTimes(NativePOSIX posix) {
this.memory = Memory.allocate(posix.getRuntime(), layout.size());
}
public long utime() {
return layout.tms_utime.get(memory);
}
public long stime() {
return layout.tms_stime.get(memory);
}
public long cutime() {
return layout.tms_cutime.get(memory);
}
public long cstime() {
return layout.tms_cstime.get(memory);
}
}