meter.cc

来自「COPE the first practical network coding 」· CC 代码 · 共 55 行

CC
55
字号
/* * packetmeter.{cc,hh} -- element sends packets out one of several outputs * depending on recent rate (packets/s) * Eddie Kohler * * Copyright (c) 1999-2000 Massachusetts Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, subject to the conditions * listed in the Click LICENSE file. These conditions include: you must * preserve this copyright notice, and you cannot mention the copyright * holders in advertising related to the Software without their permission. * The Software is provided WITHOUT ANY WARRANTY, EXPRESS OR IMPLIED. This * notice is a summary of the Click LICENSE file; the license in that file is * legally binding. */#include <click/config.h>#include "meter.hh"CLICK_DECLSMeter::Meter(){}Meter::~Meter(){}voidMeter::push(int, Packet *p){  _rate.update(1);		// packets, not bytes  unsigned r = _rate.average();  if (_nmeters < 2) {    int n = (r >= _meter1);    output(n).push(p);  } else {    unsigned *meters = _meters;    int nmeters = _nmeters;    for (int i = 0; i < nmeters; i++)      if (r < meters[i]) {	output(i).push(p);	return;      }    output(nmeters).push(p);  }}CLICK_ENDDECLSELEMENT_REQUIRES(BandwidthMeter)EXPORT_ELEMENT(Meter)

⌨️ 快捷键说明

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