亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? click-combine.cc

?? COPE the first practical network coding scheme which is developped on click
?? CC
?? 第 1 頁 / 共 2 頁
字號:
  // combine links  link_id.clear();  for (int i = 0; i < links_from.size(); i++)    link_id.push_back(i);  bool done = false;  while (!done) {    done = true;    for (int i = 1; i < links_from.size(); i++)      for (int j = 0; j < i; j++)	if ((links_from[i] == links_from[j] || links_to[i] == links_to[j])	    && link_id[i] != link_id[j]) {	  link_id[i] = link_id[j];	  done = false;	}  }  return 0;}static voidmake_link(const Vector<RouterPortT> &from, const Vector<RouterPortT> &to,	  RouterT *combined){  static int linkno = 0;    Vector<RouterPortT> all(from);  for (int i = 0; i < to.size(); i++)    all.push_back(to[i]);  Vector<ElementT *> combes;  Vector<String> words;  for (int i = 0; i < all.size(); i++) {    int r = all[i].port;    ElementT *e = all[i].element;    String name = router_names[r] + "/" + e->name();    combes.push_back(combined->element(name));    assert(combes.back());    words.push_back(router_names[r] + " " + e->name() + " " + e->type_name());    words.push_back(e->configuration());  }  // add new element  ElementClassT *link_type = ElementClassT::base_type("RouterLink");  ElementT *newe = combined->get_element    ("link" + String(++linkno), link_type, cp_unargvec(words), "<click-combine>");  for (int i = 0; i < from.size(); i++) {    combined->insert_before(PortT(newe, i), PortT(combes[i], 0));    combined->free_element(combes[i]);  }  for (int j = from.size(); j < combes.size(); j++) {    combined->insert_after(PortT(newe, j - from.size()), PortT(combes[j], 0));    combined->free_element(combes[j]);  }}static voidadd_links(RouterT *r){  Vector<int> done(link_id.size(), 0);  for (int i = 0; i < links_from.size(); i++)    if (!done[link_id[i]]) {      // find all input & output ports      Vector<RouterPortT> from, to;      for (int j = 0; j < links_from.size(); j++)	if (link_id[j] == link_id[i]) {	  if (links_from[j].index_in(from) < 0)	    from.push_back(links_from[j]);	  if (links_to[j].index_in(to) < 0)	    to.push_back(links_to[j]);	}      // add single link      make_link(from, to, r);      done[link_id[i]] = 1;    }}intmain(int argc, char **argv){  click_static_initialize();  CLICK_DEFAULT_PROVIDES;  ErrorHandler *errh = ErrorHandler::default_handler();  ErrorHandler *p_errh = new PrefixErrorHandler(errh, "click-combine: ");  // read command line arguments  Clp_Parser *clp =    Clp_NewParser(argc, argv, sizeof(options) / sizeof(options[0]), options);  Clp_SetOptionChar(clp, '+', Clp_ShortNegated);  program_name = Clp_ProgramName(clp);  const char *output_file = 0;  String next_name;  int next_number = 1;  Vector<String> link_texts;  bool config_only = false;  while (1) {    int opt = Clp_Next(clp);    switch (opt) {           case HELP_OPT:      usage();      exit(0);      break;           case VERSION_OPT:      printf("click-combine (Click) %s\n", CLICK_VERSION);      printf("Copyright (c) 2000 Massachusetts Institute of Technology\n\This is free software; see the source for copying conditions.\n\There is NO warranty, not even for merchantability or fitness for a\n\particular purpose.\n");      exit(0);      break;           case ROUTER_OPT:      cc_read_router(String(), next_name, next_number, clp->arg, false, errh);      break;     case EXPRESSION_OPT:      cc_read_router(String(), next_name, next_number, clp->arg, true, errh);      break;     case OUTPUT_OPT:      if (output_file) {	p_errh->error("output file specified twice");	goto bad_option;      }      output_file = clp->arg;      break;     case NAME_OPT:      if (next_name)	p_errh->warning("router name specified twice");      next_name = clp->arg;      break;     case LINK_OPT:      link_texts.push_back(clp->arg);      break;     case CONFIG_OPT:      config_only = true;      break;           case Clp_NotOption:      if (const char *s = strchr(clp->arg, ':'))	cc_read_router(String(clp->arg, s - clp->arg), next_name, next_number, s + 1, false, errh);      else if (const char *eq = strchr(clp->arg, '=')) {	const char *dot = strchr(clp->arg, '.');	if (!dot || dot > eq)	  cc_read_router(String(clp->arg, eq - clp->arg), next_name, next_number, eq + 1, false, errh);	else	  link_texts.push_back(clp->arg);      } else	cc_read_router(String(), next_name, next_number, clp->arg, false, errh);      break;           bad_option:     case Clp_BadOption:      short_usage();      exit(1);      break;           case Clp_Done:      goto done;          }  }   done:  // no routers is an error  if (routers.size() == 0)    p_errh->fatal("no routers specified");    // check that routers are named differently  HashMap<String, int> name_map(-1);  for (int i = 0; i < routers.size(); i++) {    if (name_map[router_names[i]] >= 0)      p_errh->fatal("two routers named '%s'", router_names[i].cc());    name_map.insert(router_names[i], i);  }  // define links  for (int i = 0; i < link_texts.size(); i++)    parse_link(link_texts[i], p_errh);  // exit if there have been errors  if (errh->nerrors() != 0)    exit(1);  // open output file  FILE *outf = stdout;  if (output_file && strcmp(output_file, "-") != 0) {    outf = fopen(output_file, "w");    if (!outf)      errh->fatal("%s: %s", output_file, strerror(errno));  }  // combine routers  RouterT *combined = new RouterT;  VariableEnvironment empty_ve;  for (int i = 0; i < routers.size(); i++)      routers[i]->expand_into(combined, router_names[i], empty_ve, errh);  // exit if there have been errors (again)  if (errh->nerrors() != 0)    exit(1);  // nested combinations: change config strings of included RouterLinks  ElementClassT *link_type = ElementClassT::base_type("RouterLink");  for (RouterT::type_iterator x = combined->begin_elements(link_type); x; x++)    frob_nested_routerlink(x);  // make links  if (links_from.size() == 0)    errh->warning("no links between routers");  if (combine_links(p_errh) < 0)    exit(1);  add_links(combined);  combined->remove_tunnels();    // add elementmap to archive  if (!config_only) {    ElementMap em;    if (link_id.size()) {	ElementTraits t;	t.name = "RouterLink";	t.processing_code = "l/h";	t.flow_code = "x/x";	t.flags = "S3";	em.add(t);    }    // add data from included elementmaps    for (int i = 0; i < routers.size(); i++)      if (routers[i]->archive_index("elementmap.xml") >= 0) {	ArchiveElement &nae = routers[i]->archive("elementmap.xml");	em.parse(nae.data);      }    if (!em.empty()) {	combined->add_archive(init_archive_element("elementmap.xml", 0600));	ArchiveElement &ae = combined->archive("elementmap.xml");	ae.data = em.unparse();    }  }  // add componentmap to archive  if (!config_only) {    combined->add_archive(init_archive_element("componentmap", 0600));    ArchiveElement &ae = combined->archive("componentmap");    StringAccum sa;    for (int i = 0; i < routers.size(); i++) {      sa << router_names[i] << '\n';      if (routers[i]->archive_index("componentmap") >= 0) {	ArchiveElement &nae = routers[i]->archive("componentmap");	Vector<String> combines;	cp_spacevec(nae.data, combines);	for (int j = 0; j < combines.size(); j++)	  sa << router_names[i] << '/' << combines[j] << '\n';      }    }    ae.data = sa.take_string();  }    write_router_file(combined, outf, errh);  exit(0);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品羞羞答答xxdd| 不卡高清视频专区| 1024成人网| 欧美精品一区二区三区视频| jvid福利写真一区二区三区| 久久精品国产精品青草| 亚洲美女屁股眼交3| 国产亚洲精品bt天堂精选| 欧美视频一区二区在线观看| 国产成人av一区二区| 人人超碰91尤物精品国产| 亚洲欧美国产三级| 欧美国产一区视频在线观看| 欧美一区二区三区在线观看 | 日韩免费视频一区| 一本到高清视频免费精品| 国产一区二区三区在线观看精品| 日韩精品乱码av一区二区| 亚洲欧美在线高清| 国产欧美日韩亚州综合 | 91精品国产一区二区三区| jlzzjlzz亚洲日本少妇| 国产成人自拍网| 国产一区 二区| 美腿丝袜亚洲综合| 五月天一区二区| 亚洲激情图片一区| 亚洲啪啪综合av一区二区三区| 久久亚区不卡日本| 欧美第一区第二区| 欧美一区二区黄色| 欧美一区二区三区婷婷月色 | 中文字幕精品—区二区四季| 久久亚洲综合色| 久久综合视频网| 日韩视频永久免费| 精品乱人伦一区二区三区| 欧美一区二区三区爱爱| 日韩欧美亚洲另类制服综合在线| 6080午夜不卡| 欧美一级片在线看| 日韩一区二区麻豆国产| 欧美一区二区成人| 日韩欧美高清在线| 精品国产伦一区二区三区观看方式| 日韩一区二区免费高清| 亚洲精品一区二区三区蜜桃下载 | 日韩一级成人av| 日韩精品一区二区三区在线| www日韩大片| 久久久777精品电影网影网| 国产日韩欧美麻豆| 亚洲视频在线观看三级| 一区二区高清在线| 无码av免费一区二区三区试看 | 国产精品免费人成网站| 极品少妇一区二区三区精品视频 | 色婷婷精品久久二区二区蜜臂av| 91视频观看免费| 精品视频在线视频| 日韩一级黄色大片| 国产亚洲短视频| 中文字幕亚洲不卡| 亚洲第一av色| 国产自产2019最新不卡| av一二三不卡影片| 欧美日韩国产免费| www国产亚洲精品久久麻豆| 亚洲国产高清aⅴ视频| 一区二区三区在线免费播放 | 国产精品一卡二卡在线观看| 国产91精品露脸国语对白| 91在线观看下载| 欧美三级电影在线看| 日韩一区二区三区四区五区六区| 国产欧美精品一区| 一区二区三区产品免费精品久久75| 日韩精品每日更新| 成人av资源站| 欧美巨大另类极品videosbest| 国产乱一区二区| 欧美亚洲日本国产| 成人深夜福利app| 另类小说一区二区三区| 国产超碰在线一区| 欧美另类久久久品| 久久综合给合久久狠狠狠97色69| 国产精品入口麻豆九色| 亚洲高清不卡在线观看| 国产在线播放一区| 欧美色图一区二区三区| 久久午夜电影网| 午夜影院久久久| 丁香激情综合国产| 日韩视频免费观看高清完整版在线观看| 国产精品你懂的在线欣赏| 美女一区二区三区| 欧美视频在线不卡| 国产精品久久二区二区| 蜜臀av一区二区在线免费观看| 色香蕉成人二区免费| 精品久久久久久久一区二区蜜臀| 亚洲一区电影777| 国产成人精品在线看| 日韩一区二区免费在线电影| 亚洲精品菠萝久久久久久久| 国产一区二区伦理片| 欧美高清视频不卡网| 成人欧美一区二区三区小说| 精品亚洲成av人在线观看| 欧美性高清videossexo| 国产精品高潮久久久久无| 国产酒店精品激情| 2欧美一区二区三区在线观看视频| 一区二区三区四区乱视频| 国产福利一区二区| 久久久一区二区三区| 美女精品自拍一二三四| 欧美日韩中文字幕精品| 亚洲女人小视频在线观看| av一区二区三区四区| 中文字幕成人网| 春色校园综合激情亚洲| 国产亚洲欧美日韩在线一区| 久久99精品国产麻豆婷婷| 欧美日本在线观看| 亚洲成人综合网站| 欧美熟乱第一页| 亚洲一二三四在线观看| 一本一本久久a久久精品综合麻豆| 国产精品高潮呻吟| 9久草视频在线视频精品| 中文字幕欧美日韩一区| 国产高清精品久久久久| 国产日韩精品一区二区三区在线| 国产精品1区2区3区在线观看| 久久久午夜精品| 国产精品2024| 国产精品不卡在线| 色欧美片视频在线观看| 亚洲欧美日韩国产一区二区三区| 91网站最新网址| 亚洲欧美一区二区不卡| 在线观看国产精品网站| 亚洲123区在线观看| 宅男在线国产精品| 国模娜娜一区二区三区| 日本一区二区久久| 91视频免费观看| 亚洲国产cao| 日韩三级在线观看| 国产麻豆午夜三级精品| 中文字幕av一区二区三区免费看 | 日韩一区二区三区在线视频| 另类小说视频一区二区| 久久亚洲一区二区三区四区| 成人理论电影网| 亚洲综合无码一区二区| 欧美一区二区不卡视频| 国精产品一区一区三区mba视频| 国产亚洲精久久久久久| 91在线观看污| 日本不卡的三区四区五区| 久久亚洲一级片| 色老汉av一区二区三区| 日日骚欧美日韩| 久久久蜜臀国产一区二区| 波多野结衣中文字幕一区二区三区| 亚洲精品视频在线观看免费| 制服丝袜成人动漫| 成人小视频在线观看| 一区二区欧美视频| 日韩精品一区二区三区三区免费| 国产成人一区在线| 亚洲综合色成人| 欧美r级在线观看| 91浏览器在线视频| 久久精品国产99国产| 亚洲精品免费电影| 精品理论电影在线| 欧美主播一区二区三区美女| 国内欧美视频一区二区| 一区二区在线电影| 久久日韩粉嫩一区二区三区| 91美女视频网站| 国产乱一区二区| 午夜国产不卡在线观看视频| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 丁香激情综合国产| 青青草伊人久久| 一区二区三区国产| 国产亚洲一区二区三区四区| 欧美伊人久久久久久午夜久久久久| 国产精品夜夜爽| 免费成人性网站| 一区二区三区.www| 国产精品蜜臀在线观看| 日韩精品最新网址| 欧美视频一区二区在线观看| 成人激情黄色小说|