measure.cc.cc

来自「在网络的边缘路由器中并不能完全接受所到的包」· CC 代码 · 共 110 行

CC
110
字号
//MEASURE.CC
//Member function defenitions for Measure class

#include <iostream.h>
#include "measure.h"

//Measure constructor initializes each datamember to zero

Measure::Measure()
{
     bind("off_cmn_",&off_cmn_);
     bind("off_ip_",&off_ip_);
     bind("off_rtp_",&off_rtp_);
     seqno = 0;
     flowid = 0;
     uniqueid = 0;
     size = 0;
     arrivaltime = 0.0;
     servicetime = 0.0;
     classofpacket = -1;
}

// create the list of packets arrived into the network

void Measure::createPacketinfolist(Packet* p)
{
   hdr_cmn* hdr = (hdr_cmn*)p->access(off_cmn_);
   hdr_ip* iph = (hdr_ip*)p->access(off_ip_);
   hdr_rtp* rh = (hdr_rtp*)p->access(off_rtp_);

   seqno = rh->seqno();
   flowid = iph->flowid();
   uniqueid = hdr->uid();
   size = hdr->size();
   arrivaltime = hdr->arrivaltimestamp();
   servicetime = hdr->servicetimestamp();
   classofpacket = hdr->classofpacket();

}

void Measure::deletePacketinfolist()
{
   seqno = 0;
   flowid = 0;
   uniqueid = 0;
   size = 0;
   arrivaltime = 0.0;
   servicetime = 0.0;
   classofpacket = -1;
}

void Measure::printPacketinfolist()
{
  printf(" The sequenceno = %d, flowid = %d, uniqueid = %d, size = %d, arrivaltime
= %f, servicetime = %f, classofpacket = %d \n",seqno,flowid,uniqueid,size,arrivaltime,servicetime,classofpacket);
}

int Measure::getseqno()
{
  return(seqno);
}

int Measure::getflowid()
{
  return(flowid);
}

int Measure::getuniqueid()
{
  return(uniqueid);
}

int Measure::getsize()
{
  return(size);
}

double Measure::getarrivaltime()
{
  return(arrivaltime);
}

double Measure::getservicetime()
{
  return(servicetime);
}

int Measure::getclassofpacket()
{
  return(classofpacket);
}  


static class MeasureClass : public TclClass {
 public:
        MeasureClass() : TclClass("Measure") {}
        TclObject* create(int, const char*const*) {
                return (new Measure());
        }
} measure_class;

int Measure::command(int argc, const char*const* argv)
{
  Tcl& tcl = Tcl::instance();

  return TclObject::command(argc, argv); 
}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?