KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > clif > probe > memory > Insert


1 /*
2 * CLIF is a Load Injection Framework
3 * Copyright (C) 2004 France Telecom R&D
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * CLIF $Name: $
20 *
21 * Contact: clif@objectweb.org
22 */

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 /**
34  *
35  * @author Bruno Dillenseger
36  */

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 JavaDoc ex)
82         {
83             return null;
84         }
85     }
86 }
87
Popular Tags