GreenCloud Simulator
switchenergymodel.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-basic-offset:8; tab-width:8; indent-tabs-mode:t -*- */
2 /*
3  */
4 
5 #ifndef ns_switchenergymodel_h
6 #define ns_switchenergymodel_h
7 
8 #include "tclcl.h"
9 #include "classifier.h"
10 #include "timer-handler.h"
11 #include "app.h"
12 
13 class Classifier;
14 
15 class SwitchEnergyModel;
16 
17 class SwitchEnergyTimer : public TimerHandler {
18 public:
20 protected:
21  void expire(Event*);
23 };
24 
25 class SwitchEnergyModel : public TclObject {
26 public:
28  virtual ~SwitchEnergyModel();
29 
30  virtual int command(int argc, const char*const* argv);
31  virtual void timeout();
32  void setClassifier(Classifier *classifier){classifier_ = classifier;};
33  void updateEnergy(int curSlot, int nports);
34 
35  void start();
36  void stop();
37 
38  double eConsumed_;
39 
40  double eChassis_;
41  double eLineCard_;
42  double ePort_;
43 
44  double eSimEnd_;
45 
48  double eDNS_delay_;
49 
50 protected:
51  double computeCurrentRate();
52 
53  int eEnabled_;
54 
55  double eCurrentRate_;
56  double eLastSample_;
58 
59  double eSimDuration_;
60 
61  Classifier *classifier_;
63 };
64 
65 #endif
SwitchEnergyTimer energytimer_
SwitchEnergyTimer(SwitchEnergyModel *em)
void expire(Event *)
SwitchEnergyModel * em_
void setClassifier(Classifier *classifier)
Classifier * classifier_