source: DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/PState.java @ 1272

Revision 1272, 1.8 KB checked in by wojtekp, 11 years ago (diff)
  • Property svn:mime-type set to text/plain
Line 
1package schedframe.resources.computing.profiles.energy.power;
2
3import java.util.Map;
4import java.util.TreeMap;
5
6public class PState {
7
8        protected String name;
9        protected double frequency;
10        protected double voltage;
11        protected double powerUsage;
12
13        protected Map<Double, Double> loadPowerUsage;
14       
15        /*public PState(PStateType name, double frequency, double voltage, double power) {
16                super();
17                this.name = name;
18                this.frequency = frequency;
19                this.voltage = voltage;
20                this.power = power;
21        }*/
22       
23        public String getName() {
24                return name;
25        }
26        public double getFrequency() {
27                return frequency;
28        }
29        public double getVoltage() {
30                return voltage;
31        }
32        public double getPower() {
33                return powerUsage;
34        }
35
36        public Map<Double, Double> getLoadPowerUsage() {
37                if(loadPowerUsage == null) {
38                        return new TreeMap<Double, Double>();
39                }
40                return loadPowerUsage;
41        }
42
43        public static class Builder {
44         
45                protected String name;
46                protected double frequency;
47                protected double voltage;
48                protected double powerUsage;
49
50
51                protected Map<Double, Double> loadPowerUsage = new TreeMap<Double, Double>();
52               
53                public Builder name(String name){this.name = name; return this; }
54        public Builder frequency(double value){this.frequency = value; return this; }
55        public Builder voltage(double value){this.voltage = value; return this; }
56        public Builder powerUsage(double rate){this.powerUsage = rate; return this; }
57
58        public Builder loadPowerUsage(double load, double power){this.loadPowerUsage.put(load, power); return this; }
59       
60        public PState build() {
61            return new PState(this);
62        }
63        }
64       
65        private PState(Builder builder) {
66                this.name = builder.name;
67                this.frequency = builder.frequency;
68                this.voltage = builder.voltage;
69                this.powerUsage = builder.powerUsage;
70               
71                this.loadPowerUsage = builder.loadPowerUsage;
72        }
73
74}
Note: See TracBrowser for help on using the repository browser.