// Path: flyAgent/src/main/java/com/agun/system/SystemUtil.java
// public class SystemUtil {
// 	public static boolean isWindows(){
// 		String OS = System.getProperty("os.name").toLowerCase();
// 		return (OS.indexOf("win") >= 0);
// 	}
// }


import hudson.util.ProcessTree;
import hudson.util.ProcessTree.OSProcess;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import com.agun.system.SystemUtil;

/***
 * jenkins 의 ProcessTree 기능을 편하게 사용할 수 있게 추상화
 * @author agun
 */
package com.agun.jenkins;






public class ProcessTreeHelper {
	/**
	 * OSProcess 의 iterator 을 편한 List<?>로 변경해 준다
	 * @return List<OSProcess>
	 */
	public static List<OSProcess> getProcessList(){
		ProcessTree processTree = ProcessTree.get();
		Iterator<OSProcess> processIter =    processTree.iterator();
		List<OSProcess> processList = new ArrayList<OSProcess>();
		while(processIter.hasNext()){
			processList.add(processIter.next());
		}
		return processList;
	}
	
	/**
	 * 프로세스에 대한 정보를 구한다.
	 * @return Map<Integer, String>
	 */
	public static Map<Integer, String> getInfoProcess(){
		
		ProcessTree processTree = ProcessTree.get();
		Iterator<OSProcess> processIter =    processTree.iterator();
		Map<Integer, String> processInfoMap = new Hashtable<Integer, String>();
		while(processIter.hasNext()){
			OSProcess osProcess = processIter.next();
			// windowns ? org.jvnet.winp.WinpException: Failed to open process error=5 at .\envvar-cmdline.cpp:53

// Path: flyAgent/src/main/java/com/agun/system/SystemUtil.java
// public class SystemUtil {
// 	public static boolean isWindows(){
// 		String OS = System.getProperty("os.name").toLowerCase();
// 		return (OS.indexOf("win") >= 0);
// 	}
// }


// Path: flyAgent/src/main/java/com/agun/jenkins/ProcessTreeHelper.java
import hudson.util.ProcessTree;
import hudson.util.ProcessTree.OSProcess;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import com.agun.system.SystemUtil;

/***
 * jenkins 의 ProcessTree 기능을 편하게 사용할 수 있게 추상화
 * @author agun
 */
package com.agun.jenkins;






public class ProcessTreeHelper {
	/**
	 * OSProcess 의 iterator 을 편한 List<?>로 변경해 준다
	 * @return List<OSProcess>
	 */
	public static List<OSProcess> getProcessList(){
		ProcessTree processTree = ProcessTree.get();
		Iterator<OSProcess> processIter =    processTree.iterator();
		List<OSProcess> processList = new ArrayList<OSProcess>();
		while(processIter.hasNext()){
			processList.add(processIter.next());
		}
		return processList;
	}
	
	/**
	 * 프로세스에 대한 정보를 구한다.
	 * @return Map<Integer, String>
	 */
	public static Map<Integer, String> getInfoProcess(){
		
		ProcessTree processTree = ProcessTree.get();
		Iterator<OSProcess> processIter =    processTree.iterator();
		Map<Integer, String> processInfoMap = new Hashtable<Integer, String>();
		while(processIter.hasNext()){
			OSProcess osProcess = processIter.next();
			// windowns ? org.jvnet.winp.WinpException: Failed to open process error=5 at .\envvar-cmdline.cpp:53

			if(SystemUtil.isWindows()){
