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

#include <tskcomsink.h>

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

Public Member Functions

 TskComSink ()
 
virtual ~TskComSink ()
 
void addResourceProvider (ResourceProvider *newrp)
 
virtual int command (int argc, const char *const *argv)
 
virtual void recv (Packet *pkt, Handler *)
 
- Public Member Functions inherited from ByteCounter
 ByteCounter ()
 
virtual ~ByteCounter ()
 
int resetBytesSince ()
 
double getLastBytesSinceTime ()
 

Protected Attributes

int nlost_
 
int npkts_
 
int expected_
 
int bytes_
 
int seqno_
 
double last_packet_time_
 
ResourceProviderres_provider_
 
- Protected Attributes inherited from ByteCounter
int bytes_since_
 
double last_bytes_since_
 

Detailed Description

Definition at line 19 of file tskcomsink.h.

Constructor & Destructor Documentation

TskComSink::TskComSink ( )

Definition at line 28 of file tskcomsink.cc.

28  : Agent(PT_NTYPE)
29 {
30  bytes_ = 0;
31  bytes_since_ = 0;
32  nlost_ = 0;
33  npkts_ = 0;
34  expected_ = -1;
35  last_packet_time_ = 0.;
36  last_bytes_since_ = 0.;
37  seqno_ = 0;
38  bind("nlost_", &nlost_);
39  bind("npkts_", &npkts_);
40  bind("bytes_", &bytes_);
41  bind("lastPktTime_", &last_packet_time_);
42  bind("expected_", &expected_);
43 }
int bytes_
Definition: tskcomsink.h:31
double last_packet_time_
Definition: tskcomsink.h:33
double last_bytes_since_
Definition: bytecounter.h:27
int nlost_
Definition: tskcomsink.h:28
int seqno_
Definition: tskcomsink.h:32
int npkts_
Definition: tskcomsink.h:29
int expected_
Definition: tskcomsink.h:30
int bytes_since_
Definition: bytecounter.h:26
TskComSink::~TskComSink ( )
virtual

Definition at line 45 of file tskcomsink.cc.

46 {
47  res_provider_ = NULL;
48 }
ResourceProvider * res_provider_
Definition: tskcomsink.h:36

Member Function Documentation

void TskComSink::addResourceProvider ( ResourceProvider newrp)

Definition at line 70 of file tskcomsink.cc.

71 {
72  res_provider_ = newrp;
74 }
void setTskComSink(TskComSink *tcs)
ResourceProvider * res_provider_
Definition: tskcomsink.h:36
int TskComSink::command ( int  argc,
const char *const *  argv 
)
virtual

Definition at line 80 of file tskcomsink.cc.

81 {
82  if (argc == 2) {
83  if (strcmp(argv[1], "clear") == 0) {
84  expected_ = -1;
85  return (TCL_OK);
86  }
87  }
88  if (argc == 3) {
89  if (strcmp(argv[1], "connect-resprovider") == 0) {
90  ResourceProvider *hst = dynamic_cast<ResourceProvider*> (TclObject::lookup(argv[2]));
91  if(hst){
93  return (TCL_OK);
94  }
95  return (TCL_ERROR);
96  }
97  }
98 
99  return (Agent::command(argc, argv));
100 }
int expected_
Definition: tskcomsink.h:30
void addResourceProvider(ResourceProvider *newrp)
Definition: tskcomsink.cc:70
void TskComSink::recv ( Packet *  pkt,
Handler *   
)
virtual

Definition at line 50 of file tskcomsink.cc.

51 {
52  /* Get TskObject and start its execution */
53  ResourceConsumer *recvTskObj = (ResourceConsumer*)hdr_cmn::access(pkt)->pt_obj_addr();
54 // std::cerr << "Pointer recieved:" << recvTskObj << "\n";
55 
56  if (recvTskObj) { /* Valid pointer and can be executed */
57 // std::cerr << "Task id:" << ((CloudTask*)recvTskObj)->id_ << "\n";
58  if (res_provider_) res_provider_->recv(recvTskObj);
59  else printf("Error: task is received but no ResourceProvider is attached\n");
60  }
61 
62  bytes_ += hdr_cmn::access(pkt)->size();
63  bytes_since_ += hdr_cmn::access(pkt)->size();
64  ++npkts_;
65 
66  last_packet_time_ = Scheduler::instance().clock();
67  Packet::free(pkt);
68 }
int bytes_
Definition: tskcomsink.h:31
double last_packet_time_
Definition: tskcomsink.h:33
int npkts_
Definition: tskcomsink.h:29
ResourceProvider * res_provider_
Definition: tskcomsink.h:36
void recv(ResourceConsumer *rcobj)
int bytes_since_
Definition: bytecounter.h:26

Member Data Documentation

int TskComSink::bytes_
protected

Definition at line 31 of file tskcomsink.h.

int TskComSink::expected_
protected

Definition at line 30 of file tskcomsink.h.

double TskComSink::last_packet_time_
protected

Definition at line 33 of file tskcomsink.h.

int TskComSink::nlost_
protected

Definition at line 28 of file tskcomsink.h.

int TskComSink::npkts_
protected

Definition at line 29 of file tskcomsink.h.

ResourceProvider* TskComSink::res_provider_
protected

Definition at line 36 of file tskcomsink.h.

int TskComSink::seqno_
protected

Definition at line 32 of file tskcomsink.h.


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