blob: 2b9b8208178271f0b4e38d6026bf8e9255c97be2 [file] [log] [blame]
package jnr.posix.windows;
/**
* BY_HANDLE_FILE_INFORMATION
*/
public class WindowsByHandleFileInformation extends CommonFileInformation {
final Unsigned32 dwFileAttributes = new Unsigned32();
// FIXME: I have no idea why I could not include FileTime here but having it do its own layout seems to change
// something.
final UnsignedLong chigh = new UnsignedLong();
final UnsignedLong clow = new UnsignedLong();
final UnsignedLong ahigh = new UnsignedLong();
final UnsignedLong alow = new UnsignedLong();
final UnsignedLong uhigh = new UnsignedLong();
final UnsignedLong ulow = new UnsignedLong();
final Unsigned32 dwVolumeSerialNumber = new Unsigned32();
final Unsigned32 nFileSizeHigh = new Unsigned32();
final Unsigned32 nFileSizeLow = new Unsigned32();
final Unsigned32 nNumberOfLinks = new Unsigned32();
final Unsigned32 nFileIndexHigh = new Unsigned32();
final Unsigned32 nFileIndexLow = new Unsigned32();
public WindowsByHandleFileInformation(jnr.ffi.Runtime runtime) {
super(runtime);
}
public HackyFileTime getCreationTime() {
return new HackyFileTime(chigh, clow);
}
public HackyFileTime getLastAccessTime() {
return new HackyFileTime(ahigh, alow);
}
public HackyFileTime getLastWriteTime() {
return new HackyFileTime(uhigh, ulow);
}
public int getFileAttributes() {
return dwFileAttributes.intValue();
}
public long getFileSizeHigh() {
return nFileSizeHigh.intValue();
}
public long getFileSizeLow() {
return nFileSizeLow.intValue();
}
}