GreenCloud Simulator
resourcespec.cc
Go to the documentation of this file.
1 /*
2  * resourcespec.cc
3  *
4  * @date Feb 27, 2013
5  * @author Guzek:Mateusz
6  */
7 
8 #include "resourcespec.h"
9 
10 
11 static class ResourceSpecClass : public TclClass {
12 public:
13  ResourceSpecClass() : TclClass("ResourceSpec") {}
14  TclObject* create(int argc, const char*const*argv) {
15  return (new ResourceSpec());
16  }
18 
19 ResourceSpec::ResourceSpec() : name_("NA"), res_model_(NULL){
20  // std::cerr << ("Resource Spec Constructor.\n");
21  capacity.clear();
22  power_states.clear();
23 }
24 
26  name_.clear();
27 }
28 
29 int ResourceSpec::addCapacity(double cap){
30  capacity.push_back(cap);
31  return 0;
32 }
34  power_states.push_back(ps);
35  return 0;
36 }
37 
38 
39 int ResourceSpec::setName(const char* name){
40  name_=name;
41  return 0;
42 }
43 
44 int ResourceSpec::setArch(const char* name){
45  arch = atof(name);
46  return 0;
47 }
48 
50  res_model_ = model;
51 }
52 
54  return res_model_;
55 }
56 
58  std::cerr << "ResourceSpec:\t";
59  std::cerr << name_;
60  std::cerr << "\n";
62  std::vector <int>::iterator iter;
63  std::cerr << "Power states:\t";
64  for (iter = power_states.begin(); iter!=power_states.end(); iter++)
65  {
66  std::cerr << (*iter) << ",";
67  }
68  std::cerr << "\n";
69 
70 }
71 
72 
73 
74 int ResourceSpec::command(int argc, const char*const* argv){
75 
76 
77  if (argc == 2) {
78  if (strcmp(argv[1], "print") == 0) {
79  print();
80  return (TCL_OK);
81  }
82  } else if (argc == 3) {
83  if (strcmp(argv[1], "add-capacity") == 0) {
84  addCapacity(atof(argv[2]));
85  return (TCL_OK);
86  } else if(strcmp(argv[1], "add-power-state") == 0){
87  addPowerState(atoi(argv[2]));
88  return (TCL_OK);
89  } else if(strcmp(argv[1], "set-type") == 0){
90  if(Resource::setType(argv[2])==0){
91  return (TCL_OK);
92  } else {
93  return (TCL_ERROR);
94  }
95  } else if(strcmp(argv[1], "set-name") == 0){
96  setName(argv[2]);
97  return (TCL_OK);
98  } else if(strcmp(argv[1], "set-arch") == 0){
99  setArch(argv[2]);
100  return (TCL_OK);
101  } else if (strcmp(argv[1], "set-power-model") == 0) {
102  PowerModel* pm = (PowerModel*) TclObject::lookup(argv[2]);
103  this->setPowerModel(pm);
104  return (TCL_OK);
105  }
106  }
107  return (ResourceSpec::command(argc, argv));
108 }
109 
110 
111 
112 
113 
std::vector< Capacity > capacity
Definition: resource.h:87
virtual int command(int argc, const char *const *argv)
Definition: resourcespec.cc:74
virtual ~ResourceSpec()
Definition: resourcespec.cc:25
TclObject * create(int argc, const char *const *argv)
Definition: resourcespec.cc:14
int setType(const char *t)
Definition: resource.cc:103
double arch
Definition: resource.h:99
std::string name_
Definition: resourcespec.h:34
ResourceSpecClass class_resourcespec
void print()
Definition: resource.cc:129
PowerModel * getPowerModel()
Definition: resourcespec.cc:53
int setArch(const char *name)
Definition: resourcespec.cc:44
int addCapacity(double cap)
Definition: resourcespec.cc:29
std::vector< int > power_states
Definition: resourcespec.h:36
int setName(const char *name)
Definition: resourcespec.cc:39
void setPowerModel(PowerModel *model)
Definition: resourcespec.cc:49
PowerModel * res_model_
Definition: resourcespec.h:47
int addPowerState(int ps)
Definition: resourcespec.cc:33