package org.bench4q.monitor.performance.windows;

import org.springframework.stereotype.Component;

@Component
public class ProcessMonitor {
	public native String[] getInstances();

	public native String[] getCounterList();

	public native double getProcessorTimePercent(String instanceName,
			int idleTime);

	public native double getUserTimePercent(String instanceName, int idleTime);

	public native double getPrivilegedTimePercent(String instanceName,
			int idleTime);

	public native double getVirtualBytesPeak(String instanceName);

	public native double getVirtualBytes(String instanceName);

	public native double getPageFaultsPerSecond(String instanceName,
			int idleTime);

	public native double getWorkingSetPeak(String instanceName);

	public native double getWorkingSet(String instanceName);

	public native double getPageFileBytesPeak(String instanceName);

	public native double getPageFileBytes(String instanceName);

	public native double getPrivateBytes(String instanceName);

	public native double getThreadCount(String instanceName);

	public native double getPriorityBase(String instanceName);

	public native double getElapsedTime(String instanceName);

	public native double getProcessId(String instanceName);

	public native double getCreatingProcessId(String instanceName);

	public native double getPoolPagedBytes(String instanceName);

	public native double getPoolNonpagedBytes(String instanceName);

	public native double getHandleCount(String instanceName);

	public native double getIOReadOperationsPerSecond(String instanceName,
			int idleTime);

	public native double getIOWriteOperationsPerSecond(String instanceName,
			int idleTime);

	public native double getIODataOperationsPerSecond(String instanceName,
			int idleTime);

	public native double getIOOtherOperationsPerSecond(String instanceName,
			int idleTime);

	public native double getIOReadBytesPerSecond(String instanceName,
			int idleTime);

	public native double getIOWriteBytesPerSecond(String instanceName,
			int idleTime);

	public native double getIODataBytesPerSecond(String instanceName,
			int idleTime);

	public native double getIOOtherBytesPerSecond(String instanceName,
			int idleTime);

	public native double getPrivateWorkingSet(String instanceName);
}
