1 package fr.in2p3.jsaga.impl.resource.task;
2
3 import fr.in2p3.jsaga.impl.monitoring.MetricImpl;
4 import fr.in2p3.jsaga.impl.monitoring.MetricMode;
5 import fr.in2p3.jsaga.impl.monitoring.MetricType;
6 import org.ogf.saga.resource.task.ResourceTask;
7 import org.ogf.saga.task.State;
8
9
10
11
12
13 public class ResourceMetrics implements Cloneable {
14 MetricImpl<State> m_State;
15 MetricImpl<String> m_StateDetail;
16
17
18 ResourceMetrics(AbstractResourceTaskImpl resource) {
19 m_State = new ResourceStateMetricFactoryImpl<State>(resource).createAndRegister(
20 ResourceTask.RESOURCE_STATE,
21 "fires on state changes of the resource, and has the literal value of the resource state enum.",
22 MetricMode.ReadOnly,
23 "1",
24 MetricType.Enum,
25 State.NEW);
26 m_StateDetail = new ResourceStateMetricFactoryImpl<String>(resource).createAndRegister(
27 ResourceTask.RESOURCE_STATEDETAIL,
28 "fires as a resource changes its state detail",
29 MetricMode.ReadOnly,
30 "1",
31 MetricType.String,
32 "Unknown:Unknown");
33 }
34
35
36 public ResourceMetrics clone() throws CloneNotSupportedException {
37 ResourceMetrics clone = (ResourceMetrics) super.clone();
38 clone.m_State = m_State.clone();
39 clone.m_StateDetail = m_StateDetail.clone();
40 return clone;
41 }
42 }