Ignore:
Timestamp:
10/31/12 13:52:06 (12 years ago)
Author:
wojtekp
Message:
 
Location:
DCWoRMS/trunk/build/classes/schedframe/resources/computing/profiles/energy/airthroughput
Files:
9 added
2 edited

Legend:

Unmodified
Added
Removed
  • DCWoRMS/trunk/build/classes/schedframe/resources/computing/profiles/energy/airthroughput/AirThroughputProfile.java

    r477 r539  
    11package schedframe.resources.computing.profiles.energy.airthroughput; 
    22 
     3import java.util.ArrayList; 
    34import java.util.List; 
     5 
     6import org.joda.time.DateTimeUtils; 
    47 
    58import schedframe.Parameters; 
     
    811public class AirThroughputProfile { 
    912         
    10         AirThroughputEstimationPlugin airThroughputEstimationPlugin; 
     13        protected List<AirFlowValue> airFlowHistory; 
     14         
     15        protected AirThroughputEstimationPlugin airThroughputEstimationPlugin; 
    1116        protected List <AirThroughputState> airThroughputStates; 
     17        protected Parameters parameters; 
    1218 
    1319        public AirThroughputProfile(AirThroughputEstimationPlugin airThroughputEstimationPlugin, List<AirThroughputState> airThroughputStates) { 
     
    1521                this.airThroughputEstimationPlugin = airThroughputEstimationPlugin; 
    1622                this.airThroughputStates = airThroughputStates; 
     23                this.airFlowHistory = new ArrayList<AirFlowValue>(); 
    1724        } 
    1825 
     
    2128        } 
    2229         
    23         public void init(Parameters parameters){ 
    24                  
     30        public void addToPowerUsageHistory(double airFlow) { 
     31 
     32                if (airFlowHistory.size() == 0) { 
     33                        AirFlowValue usage = new AirFlowValue(DateTimeUtils.currentTimeMillis(), airFlow); 
     34                        airFlowHistory.add(usage); 
     35                        return; 
     36                } 
     37 
     38                int lastIdx = airFlowHistory.size() - 1; 
     39                double lastAirFlow = airFlowHistory.get(lastIdx).getValue(); 
     40                if (lastAirFlow != airFlow) { 
     41                        AirFlowValue usage = airFlowHistory.get(lastIdx); 
     42                        long currentTime = DateTimeUtils.currentTimeMillis(); 
     43                        if (usage.getTimestamp() == currentTime) { 
     44                                usage.setValue(airFlow); 
     45                                if(lastIdx > 0 && airFlowHistory.get(lastIdx - 1).getValue() == airFlow) 
     46                                        airFlowHistory.remove(usage); 
     47                        } else { 
     48                                usage = new AirFlowValue(DateTimeUtils.currentTimeMillis(), airFlow); 
     49                                airFlowHistory.add(usage); 
     50                        } 
     51                } 
     52        } 
     53 
     54        public List<AirFlowValue> getAirThroughputHistory() { 
     55                return airFlowHistory; 
     56        } 
     57         
     58        public void init(Parameters params){ 
     59                this.parameters = params; 
     60        } 
     61 
     62        public Parameters getParameters() { 
     63                return parameters; 
    2564        } 
    2665} 
Note: See TracChangeset for help on using the changeset viewer.