GreenCloud Simulator
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
DcRack Class Reference

#include <dcrack.h>

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

Public Member Functions

 DcRack ()
 
virtual ~DcRack ()
 
virtual int command (int argc, const char *const *argv)
 

Public Attributes

int rack_id_
 
double stat_interval
 
double link_load
 
double uplink_B
 

Protected Member Functions

void updatestats ()
 
virtual void expire (Event *e)
 
void addHost (DcHost *hst)
 

Protected Attributes

vector< DcHost * > hosts_list_
 
vector< QueueMonitor * > qmon_uplink_list
 
int breceived_
 
int breceived_old_
 

Detailed Description

Definition at line 9 of file dcrack.h.

Constructor & Destructor Documentation

DcRack::DcRack ( )

Definition at line 15 of file dcrack.cc.

16 {
17  bind("rack_id_", &rack_id_);
18  bind("breceived_", &breceived_);
19  bind("stat_interval", &stat_interval);
20  bind("uplink_B", &uplink_B);
21 }
double stat_interval
Definition: dcrack.h:16
int breceived_old_
Definition: dcrack.h:33
int breceived_
Definition: dcrack.h:32
int rack_id_
Definition: dcrack.h:15
double uplink_B
Definition: dcrack.h:18
DcRack::~DcRack ( )
virtual

Definition at line 23 of file dcrack.cc.

24 {
25  hosts_list_.~vector();
26  qmon_uplink_list.~vector();
27 }
vector< QueueMonitor * > qmon_uplink_list
Definition: dcrack.h:24
vector< DcHost * > hosts_list_
Definition: dcrack.h:23

Member Function Documentation

void DcRack::addHost ( DcHost hst)
protected

Definition at line 60 of file dcrack.cc.

60  {
61  hosts_list_.push_back(hst);
62  hst->rack_=this;
63 }
DcRack * rack_
Definition: dchost.h:33
vector< DcHost * > hosts_list_
Definition: dcrack.h:23
int DcRack::command ( int  argc,
const char *const *  argv 
)
virtual

Definition at line 65 of file dcrack.cc.

66 {
67  if (argc == 2) {
68  if (strcmp(argv[1], "update-stats") == 0) {
69  updatestats();
70  return (TCL_OK);
71  } else if (strcmp(argv[1], "start") == 0) {
72  expire(new Event());
73  return (TCL_OK);
74  }
75  } else if (argc == 3) {
76  if (strcmp(argv[1], "add-dchost") == 0) {
77  DcHost *hst = dynamic_cast<DcHost*> (TclObject::lookup(argv[2]));
78  if(hst){
79  addHost(hst);
80  return (TCL_OK);
81  }
82  return (TCL_ERROR);
83  }
84  else if (strcmp(argv[1], "add-uplink-qmon") == 0) {
85  QueueMonitor *uplinkqmon = dynamic_cast<QueueMonitor*> (TclObject::lookup(argv[2]));
86  if(uplinkqmon){
87  qmon_uplink_list.push_back(uplinkqmon);
88 
89  return (TCL_OK);
90  }
91  return (TCL_ERROR);
92  }
93  }
94  return (DcRack::command(argc, argv));
95 }
void addHost(DcHost *hst)
Definition: dcrack.cc:60
virtual int command(int argc, const char *const *argv)
Definition: dcrack.cc:65
void updatestats()
Definition: dcrack.cc:29
vector< QueueMonitor * > qmon_uplink_list
Definition: dcrack.h:24
Definition: dchost.h:27
virtual void expire(Event *e)
Definition: dcrack.cc:54
void DcRack::expire ( Event *  e)
protectedvirtual

Definition at line 54 of file dcrack.cc.

54  {
55 
56  updatestats();
57  this->resched(stat_interval);
58 }
void updatestats()
Definition: dcrack.cc:29
double stat_interval
Definition: dcrack.h:16
void DcRack::updatestats ( )
protected

Definition at line 29 of file dcrack.cc.

29  {
30 
31  vector <QueueMonitor*>::iterator iter;
33  breceived_ = 0;
34 // link_load = 0;
35 
36  /* Update statistics on the number of bytes received */
37  for (iter = qmon_uplink_list.begin(); iter!=qmon_uplink_list.end(); iter++)
38  {
39  breceived_ += (*iter)->bdepartures_tot();
40  }
42  std::cerr << "ERROR in DcRack.cc: Byte counter overflow, consider resetting bdepartures_tot in qmon";
43  abort();
44  }
46  //TODO: fix the problem
47  link_load *=qmon_uplink_list.size();
48  if(link_load > 1 ){
49  link_load=1;
50  }
51 // std:cerr << "Rack " << this->rack_id_ << " link load\t" << link_load <<"\n";
52 }
double stat_interval
Definition: dcrack.h:16
int breceived_old_
Definition: dcrack.h:33
int breceived_
Definition: dcrack.h:32
vector< QueueMonitor * > qmon_uplink_list
Definition: dcrack.h:24
double link_load
Definition: dcrack.h:17
double uplink_B
Definition: dcrack.h:18

Member Data Documentation

int DcRack::breceived_
protected

bytes received

Definition at line 32 of file dcrack.h.

int DcRack::breceived_old_
protected

Definition at line 33 of file dcrack.h.

vector<DcHost*> DcRack::hosts_list_
protected

list of hosts in a rack

Definition at line 23 of file dcrack.h.

double DcRack::link_load

Definition at line 17 of file dcrack.h.

vector<QueueMonitor*> DcRack::qmon_uplink_list
protected

uplink queue monitors

Definition at line 24 of file dcrack.h.

int DcRack::rack_id_

Definition at line 15 of file dcrack.h.

double DcRack::stat_interval

Definition at line 16 of file dcrack.h.

double DcRack::uplink_B

Definition at line 18 of file dcrack.h.


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