hu.mta.sztaki.lpds.cloud.simulator.energy
Class DirectEnergyMeter

java.lang.Object
  extended by hu.mta.sztaki.lpds.cloud.simulator.Timed
      extended by hu.mta.sztaki.lpds.cloud.simulator.energy.EnergyMeter
          extended by hu.mta.sztaki.lpds.cloud.simulator.energy.DirectEnergyMeter
All Implemented Interfaces:
PowerState.PowerCharacteristicsChange, ResourceSpreader.PowerBehaviorChangeListener, Comparable<Timed>

public class DirectEnergyMeter
extends EnergyMeter
implements ResourceSpreader.PowerBehaviorChangeListener, PowerState.PowerCharacteristicsChange

Direct energy meters can monitor a single resource spreader and can convert their processed consumption values to a continuously updated energy figure.

Author:
"Gabor Kecskemeti, Distributed and Parallel Systems Group, University of Innsbruck (c) 2013"

Field Summary
private  double maxProcessable
           
private  ResourceSpreader measuredResource
           
private  double previousProcessingReport
           
private  PowerState usedPowerState
           
 
Fields inherited from class hu.mta.sztaki.lpds.cloud.simulator.energy.EnergyMeter
lastMetered
 
Constructor Summary
DirectEnergyMeter(ResourceSpreader spreader)
           
 
Method Summary
 void behaviorChanged(ResourceSpreader onSpreader, PowerState newState)
           
private  double collectProcessingReport()
           
 void prePowerChangeEvent(PowerState onMe)
           
 boolean startMeter(long interval, boolean dropPriorReading)
          Initiates an energy metering session.
 void stopMeter()
          Terminates the metering session, the totalconsumption values will no longer be updated!
 void tick(long fires)
          Maintains the totalconsumption value in every desired time interval
 String toString()
           
private  void updateFieldsUsingNewInterval(long interval)
           
 
Methods inherited from class hu.mta.sztaki.lpds.cloud.simulator.energy.EnergyMeter
getMeteringStarted, getMeteringStopped, getTotalConsumption, increaseTotalConsumption, readjustMeter
 
Methods inherited from class hu.mta.sztaki.lpds.cloud.simulator.Timed
compareTo, fire, getFireCount, getFrequency, getNextEvent, getNextFire, isSubscribed, jumpTime, nextEventDistance, resetTimed, setBackPreference, simulateUntil, simulateUntilLastEvent, skipEventsTill, subscribe, unsubscribe, updateFrequency
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

measuredResource

private ResourceSpreader measuredResource

usedPowerState

private PowerState usedPowerState

previousProcessingReport

private double previousProcessingReport

maxProcessable

private double maxProcessable
Constructor Detail

DirectEnergyMeter

public DirectEnergyMeter(ResourceSpreader spreader)
Method Detail

toString

public String toString()
Overrides:
toString in class Timed

startMeter

public boolean startMeter(long interval,
                          boolean dropPriorReading)
Description copied from class: EnergyMeter
Initiates an energy metering session.

Overrides:
startMeter in class EnergyMeter
Parameters:
interval - The meter refresh frequency.
dropPriorReading -
    False: the totalConsumption values will accumulate from a previous metering session True: the totalconsumption values will start from 0 after the completion of this function.
Returns:
  • False: if a metering session is already underway
  • True: if the metering session was successfully initiated

stopMeter

public void stopMeter()
Description copied from class: EnergyMeter
Terminates the metering session, the totalconsumption values will no longer be updated!

Overrides:
stopMeter in class EnergyMeter

behaviorChanged

public void behaviorChanged(ResourceSpreader onSpreader,
                            PowerState newState)
Specified by:
behaviorChanged in interface ResourceSpreader.PowerBehaviorChangeListener

prePowerChangeEvent

public void prePowerChangeEvent(PowerState onMe)
Specified by:
prePowerChangeEvent in interface PowerState.PowerCharacteristicsChange

updateFieldsUsingNewInterval

private void updateFieldsUsingNewInterval(long interval)

collectProcessingReport

private double collectProcessingReport()

tick

public void tick(long fires)
Maintains the totalconsumption value in every desired time interval

Specified by:
tick in class Timed


Copyright © 2012–2015 University of Innsbruck & MTA SZTAKI. All rights reserved.