1 23 24 package org.objectweb.clif.probe.memory; 25 26 import org.objectweb.clif.supervisor.api.ClifException; 27 import org.objectweb.clif.probe.util.AbstractDumbInsert; 28 import org.objectweb.clif.storage.api.ProbeEvent; 29 import org.objectweb.lewys.probe.Probe; 30 import org.objectweb.lewys.common.exceptions.NoResourceToProbeException; 31 32 33 37 public class Insert extends AbstractDumbInsert 38 { 39 private Probe probe; 40 private int[] resourceIds; 41 42 43 public Insert() 44 throws ClifException 45 { 46 try 47 { 48 if (System.getProperty("os.name").equalsIgnoreCase("linux")) 49 { 50 probe = new org.objectweb.lewys.probe.linux.MemoryProbe(); 51 } 52 else if (System.getProperty("os.name").startsWith("Windows")) 53 { 54 probe = new org.objectweb.lewys.probe.windows.MemoryProbe(); 55 } 56 else 57 { 58 throw new ClifException("No memory probe available for " + System.getProperty("os.name")); 59 } 60 } 61 catch (NoResourceToProbeException ex) 62 { 63 throw new ClifException("Can't set memory probe", ex); 64 } 65 resourceIds = new int[] { 0, 1, 6, 7 }; 66 } 67 68 69 public ProbeEvent doProbe() 70 { 71 try 72 { 73 long[] values = probe.getValue(resourceIds); 74 return new MemoryEvent( 75 System.currentTimeMillis(), 76 probeId, 77 new long[] { 78 (100 * values[1]) / values[0], 79 (100 * values[3]) / values[2]}); 80 } 81 catch (Exception ex) 82 { 83 return null; 84 } 85 } 86 } 87 | Popular Tags |