X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.nativemem%2Fsrc%2Forg%2Fsimantics%2Fnativemem%2Finternal%2FPsapi64.java;h=182c046a16e42426fbde76d7bb20df1d99357cdd;hb=459ca221e046b0ed539e4eab4486a0a3178a4eba;hp=ba58251a0466db663bb6756d9cbf54eb2e319e57;hpb=2531cdf245f42bce854d43f4d49a23983c79db96;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.nativemem/src/org/simantics/nativemem/internal/Psapi64.java b/bundles/org.simantics.nativemem/src/org/simantics/nativemem/internal/Psapi64.java index ba58251a0..182c046a1 100644 --- a/bundles/org.simantics.nativemem/src/org/simantics/nativemem/internal/Psapi64.java +++ b/bundles/org.simantics.nativemem/src/org/simantics/nativemem/internal/Psapi64.java @@ -1,66 +1,66 @@ -package org.simantics.nativemem.internal; - -import java.util.Arrays; -import java.util.List; - -import org.simantics.nativemem.ProcessMemoryCounters; - -import com.sun.jna.Native; -import com.sun.jna.Structure; -import com.sun.jna.platform.win32.WinNT.HANDLE; -import com.sun.jna.win32.StdCallLibrary; - -public interface Psapi64 extends StdCallLibrary { - - Psapi64 INSTANCE = (Psapi64) Native.loadLibrary("Psapi", Psapi64.class); - - /* - * https://msdn.microsoft.com/en-us/library/windows/desktop/ms684874%28v=vs.85%29.aspx - */ - public static class PROCESS_MEMORY_COUNTERS_EX extends Structure { - public int cb; - public int PageFaultCount; - public long PeakWorkingSetSize; - public long WorkingSetSize; - public long QuotaPeakPagedPoolUsage; - public long QuotaPagedPoolUsage; - public long QuotaPeakNonPagedPoolUsage; - public long QuotaNonPagedPoolUsage; - public long PagefileUsage; - public long PeakPagefileUsage; - public long PrivateUsage; - - @SuppressWarnings("rawtypes") - @Override - protected List getFieldOrder() { - return PROCESS_MEMORY_COUNTERS_EX_FIELDS; - } - - private static final List PROCESS_MEMORY_COUNTERS_EX_FIELDS = Arrays.asList(new String[] { - "cb", "PageFaultCount", - "PeakWorkingSetSize", "WorkingSetSize", - "QuotaPeakPagedPoolUsage", "QuotaPagedPoolUsage", - "QuotaPeakNonPagedPoolUsage", "QuotaNonPagedPoolUsage", - "PagefileUsage", "PeakPagefileUsage", "PrivateUsage" - }); - - public void writeTo(ProcessMemoryCounters to) { - to.PageFaultCount = PageFaultCount; - to.PeakWorkingSetSize = PeakWorkingSetSize; - to.WorkingSetSize = WorkingSetSize; - to.QuotaPeakPagedPoolUsage = QuotaPeakPagedPoolUsage; - to.QuotaPagedPoolUsage = QuotaPagedPoolUsage; - to.QuotaPeakNonPagedPoolUsage = QuotaPeakNonPagedPoolUsage; - to.QuotaNonPagedPoolUsage = QuotaNonPagedPoolUsage; - to.PagefileUsage = PagefileUsage; - to.PeakPagefileUsage = PeakPagefileUsage; - to.PrivateUsage = PrivateUsage; - } - } - - /* - * https://msdn.microsoft.com/en-us/library/windows/desktop/ms683219%28v=vs.85%29.aspx - */ - boolean GetProcessMemoryInfo(HANDLE Process, PROCESS_MEMORY_COUNTERS_EX ppsmemCounters, int cb); - +package org.simantics.nativemem.internal; + +import java.util.Arrays; +import java.util.List; + +import org.simantics.nativemem.ProcessMemoryCounters; + +import com.sun.jna.Native; +import com.sun.jna.Structure; +import com.sun.jna.platform.win32.WinNT.HANDLE; +import com.sun.jna.win32.StdCallLibrary; + +public interface Psapi64 extends StdCallLibrary { + + Psapi64 INSTANCE = (Psapi64) Native.loadLibrary("Psapi", Psapi64.class); + + /* + * https://msdn.microsoft.com/en-us/library/windows/desktop/ms684874%28v=vs.85%29.aspx + */ + public static class PROCESS_MEMORY_COUNTERS_EX extends Structure { + public int cb; + public int PageFaultCount; + public long PeakWorkingSetSize; + public long WorkingSetSize; + public long QuotaPeakPagedPoolUsage; + public long QuotaPagedPoolUsage; + public long QuotaPeakNonPagedPoolUsage; + public long QuotaNonPagedPoolUsage; + public long PagefileUsage; + public long PeakPagefileUsage; + public long PrivateUsage; + + @SuppressWarnings("rawtypes") + @Override + protected List getFieldOrder() { + return PROCESS_MEMORY_COUNTERS_EX_FIELDS; + } + + private static final List PROCESS_MEMORY_COUNTERS_EX_FIELDS = Arrays.asList(new String[] { + "cb", "PageFaultCount", + "PeakWorkingSetSize", "WorkingSetSize", + "QuotaPeakPagedPoolUsage", "QuotaPagedPoolUsage", + "QuotaPeakNonPagedPoolUsage", "QuotaNonPagedPoolUsage", + "PagefileUsage", "PeakPagefileUsage", "PrivateUsage" + }); + + public void writeTo(ProcessMemoryCounters to) { + to.PageFaultCount = PageFaultCount; + to.PeakWorkingSetSize = PeakWorkingSetSize; + to.WorkingSetSize = WorkingSetSize; + to.QuotaPeakPagedPoolUsage = QuotaPeakPagedPoolUsage; + to.QuotaPagedPoolUsage = QuotaPagedPoolUsage; + to.QuotaPeakNonPagedPoolUsage = QuotaPeakNonPagedPoolUsage; + to.QuotaNonPagedPoolUsage = QuotaNonPagedPoolUsage; + to.PagefileUsage = PagefileUsage; + to.PeakPagefileUsage = PeakPagefileUsage; + to.PrivateUsage = PrivateUsage; + } + } + + /* + * https://msdn.microsoft.com/en-us/library/windows/desktop/ms683219%28v=vs.85%29.aspx + */ + boolean GetProcessMemoryInfo(HANDLE Process, PROCESS_MEMORY_COUNTERS_EX ppsmemCounters, int cb); + } \ No newline at end of file