GreenCloud Simulator
percomponentmodel.cc
Go to the documentation of this file.
1 /*
2  * percomponentmodel.cc
3  *
4  * @date Feb 25, 2014
5  * @author Guzek:Mateusz
6  */
7 
8 #include "percomponentmodel.h"
9 #include "../dcresource.h"
10 
11 static class PerComponentModelClass : public TclClass {
12 public:
13  PerComponentModelClass() : TclClass("PerComponentModel") {}
14  TclObject* create(int argc, const char*const*argv) {
15  return (new PerComponentModel());
16  }
18 
20 
21 
22 }
23 
25 
26 }
27 
29  modeled_components_.push_back(component);
30 }
31 
32 int PerComponentModel::command(int argc, const char*const* argv){
33  if (argc == 2) {
34  if (strcmp(argv[1], "print") == 0) {
35  /* print general info */
36  print();
37  return (TCL_OK);
38  }
39  } else if (argc==3){
40  if (strcmp(argv[1], "set-name") == 0) {
41  this->setName(argv[2]);
42  return(TCL_OK);
43  } else {
44  return(TCL_ERROR);
45  }
46  }
47  return(TCL_ERROR);
48 
49 }
50 double PerComponentModel::estimate(int size, double* predictors){
51  std::vector<DcResource*>::iterator iter;
52  double result = 0;
53  for(iter = modeled_components_.begin(); iter != modeled_components_.end(); iter++){
54  result+=(*iter)->getPower();
55  }
56  return result;
57 }
58 
60  std::vector<DcResource*>::iterator iter;
61  double result = 0;
62  for(iter = modeled_components_.begin(); iter != modeled_components_.end(); iter++){
63  result+=(*iter)->getMaxPower();
64  }
65  return result;
66 }
67 
68 
70  std::cout << "Per component power model.\nModeled components:\n";
71  std::vector<DcResource*>::iterator iter;
72  for(iter = modeled_components_.begin(); iter != modeled_components_.end(); iter++){
73  std::cout << (*iter)->specification->getPowerModel()->name_ << "\n";
74  }
75 
76 }
77 
virtual int command(int argc, const char *const *argv)
PerComponentModelClass class_powermodel
virtual ~PerComponentModel()
virtual double estimate(int size, double *predictors)
TclObject * create(int argc, const char *const *argv)
virtual void print()
virtual double getMaxPower()
virtual void addComponent(DcResource *component)