GreenCloud Simulator
Public Member Functions | Public Attributes | Private Attributes | List of all members
DcResource Class Reference

#include <dcresource.h>

Inheritance diagram for DcResource:
Inheritance graph
[legend]
Collaboration diagram for DcResource:
Collaboration graph
[legend]

Public Member Functions

 DcResource ()
 
virtual ~DcResource ()
 
virtual int command (int argc, const char *const *argv)
 
virtual int setSpecification (ResourceSpec *resspec)
 
virtual double getUtilization ()
 
virtual double getPower ()
 
virtual double getMaxPower ()
 
virtual void print ()
 
- Public Member Functions inherited from Resource
 Resource (res_type t, double a, std::vector< Capacity > cap)
 
void print ()
 
virtual ~Resource ()
 
res_type getType ()
 
double getArch ()
 

Public Attributes

ResourceSpecspecification
 
- Public Attributes inherited from Resource
std::vector< Capacitycapacity
 

Private Attributes

int used_power_state_
 
double total_cap
 

Additional Inherited Members

- Static Public Member Functions inherited from Resource
static res_type translateType (const char *t)
 
- Protected Member Functions inherited from Resource
 Resource ()
 
Resourceoperator= (const Resource &r)
 
int setType (const char *t)
 
int setCapacity (std::vector< Capacity > cap)
 
void sortCapacity ()
 
- Protected Attributes inherited from Resource
res_type type
 
double arch
 

Detailed Description

Definition at line 20 of file dcresource.h.

Constructor & Destructor Documentation

DcResource::DcResource ( )

Definition at line 19 of file dcresource.cc.

19  {
20 
21 }
DcResource::~DcResource ( )
virtual

Definition at line 23 of file dcresource.cc.

23  {
24 
25 }

Member Function Documentation

int DcResource::command ( int  argc,
const char *const *  argv 
)
virtual

Reimplemented in CPU.

Definition at line 98 of file dcresource.cc.

98  {
99 
100 
101  if (argc == 2) {
102  if (strcmp(argv[1], "print") == 0) {
103  this->print();
104  return (TCL_OK);
105  }
106  }
107  return (DcResource::command(argc, argv));
108 }
virtual int command(int argc, const char *const *argv)
Definition: dcresource.cc:98
virtual void print()
Definition: dcresource.cc:81
double DcResource::getMaxPower ( )
virtual

Definition at line 68 of file dcresource.cc.

68  {
69  int n = 1;
70  double* utilization = new double[n];
71  utilization[0] = 1;
72  double result = specification->getPowerModel()->estimate(n,utilization);
73  delete utilization;
74  return result;
75 }
ResourceSpec * specification
Definition: dcresource.h:34
PowerModel * getPowerModel()
Definition: resourcespec.cc:53
virtual double estimate(int size, double *predictors)=0
double DcResource::getPower ( )
virtual

Definition at line 58 of file dcresource.cc.

58  {
59  int n = 1;
60  double* utilization = new double[n];
61  utilization[0] = getUtilization();
62  double result = specification->getPowerModel()->estimate(n,utilization);
63  delete utilization;
64  return result;
65 }
ResourceSpec * specification
Definition: dcresource.h:34
virtual double getUtilization()
Definition: dcresource.cc:46
PowerModel * getPowerModel()
Definition: resourcespec.cc:53
virtual double estimate(int size, double *predictors)=0
double DcResource::getUtilization ( )
virtual

Reimplemented in CPU, and NIC.

Definition at line 46 of file dcresource.cc.

46  {
47  double free = 0;
48 
49  std::vector<Capacity>::iterator iter;
50  for(iter=capacity.begin(); iter!= capacity.end();iter++){
51  free += iter->getValueRecursive();
52 
53  }
54  return 1-(free/total_cap);
55 }
std::vector< Capacity > capacity
Definition: resource.h:87
double total_cap
Definition: dcresource.h:37
void DcResource::print ( )
virtual

Reimplemented in CPU.

Definition at line 81 of file dcresource.cc.

81  {
82  std::cout << "DcResource";
83  std::cout << "\n";
85  std::cout << "Available capacities:\t";
86  std::vector <Capacity>::iterator iter;
87  for (iter = capacity.begin(); iter!=capacity.end(); iter++)
88  {
89  std::cout << (*iter) << ",";
90  }
91  std::cout << "\n";
92  std::cout << "Used power state:\t" << used_power_state_;
93 
94  std::cout << "\n";
95 }
ResourceSpec * specification
Definition: dcresource.h:34
std::vector< Capacity > capacity
Definition: resource.h:87
int used_power_state_
Definition: dcresource.h:36
int DcResource::setSpecification ( ResourceSpec resspec)
virtual

Reimplemented in CPU.

Definition at line 28 of file dcresource.cc.

28  {
29  if(resspec==NULL){
30  std::cerr << "ERROR: Null pointer passed as ResourceSpec.";
31  return 1;
32  }
33  specification=resspec;
34  capacity = resspec->capacity;
36  type=resspec->type;
37  arch=resspec->arch;
38  total_cap = 0;
39  std::vector<Capacity>::iterator iter;
40  for(iter = resspec->capacity.begin();iter!= resspec->capacity.end();iter++){
41  total_cap += iter->value;
42  }
43  return 0;
44 }
ResourceSpec * specification
Definition: dcresource.h:34
std::vector< Capacity > capacity
Definition: resource.h:87
int used_power_state_
Definition: dcresource.h:36
res_type type
Definition: resource.h:95
double total_cap
Definition: dcresource.h:37
double arch
Definition: resource.h:99
std::vector< int > power_states
Definition: resourcespec.h:36

Member Data Documentation

ResourceSpec* DcResource::specification

Definition at line 34 of file dcresource.h.

double DcResource::total_cap
private

Definition at line 37 of file dcresource.h.

int DcResource::used_power_state_
private

Used power state

Definition at line 36 of file dcresource.h.


The documentation for this class was generated from the following files: