⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 staticthreadsched.cc

📁 COPE the first practical network coding scheme which is developped on click
💻 CC
字号:
// -*- c-basic-offset: 4 -*-#include <click/config.h>#include "staticthreadsched.hh"#include <click/task.hh>#include <click/master.hh>#include <click/router.hh>#include <click/error.hh>StaticThreadSched::StaticThreadSched()    : _next_thread_sched(0){}StaticThreadSched::~StaticThreadSched(){}intStaticThreadSched::configure(Vector<String> &conf, ErrorHandler *errh){    Element *e;    int preference;    for (int i = 0; i < conf.size(); i++) {	if (cp_va_space_parse(conf[i], this, errh,			      cpElement, "element", &e,			      cpInteger, "thread ID", &preference,			      cpEnd) < 0)	    return -1;	if (e->eindex() >= _thread_preferences.size())	    _thread_preferences.resize(e->eindex() + 1, THREAD_PREFERENCE_UNKNOWN);	if (preference < -1 || preference >= master()->nthreads()) {	    errh->warning("thread preference %d out of range", preference);	    preference = (preference < 0 ? -1 : 0);	}	_thread_preferences[e->eindex()] = preference;    }    _next_thread_sched = router()->thread_sched();    router()->set_thread_sched(this);    return 0;}intStaticThreadSched::initial_thread_preference(Task *task, bool scheduled){    if (Element *e = task->element()) {	int eidx = e->eindex();	if (eidx >= 0 && eidx < _thread_preferences.size() && _thread_preferences[eidx] != THREAD_PREFERENCE_UNKNOWN)	    return _thread_preferences[eidx];    }    if (_next_thread_sched)	return _next_thread_sched->initial_thread_preference(task, scheduled);    else	return THREAD_PREFERENCE_UNKNOWN;}ELEMENT_REQUIRES(linuxmodule)EXPORT_ELEMENT(StaticThreadSched)

⌨️ 快捷键说明

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