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

📄 debruijn.h

📁 chord 源码 http://pdos.csail.mit.edu/chord/
💻 H
字号:
#ifndef _DEBRUIN_H_#define _DEBRUIN_H_#include "chord_impl.h"#include "stabilize.h"#include <debruijn_prot.h>// N.G. de Bruijn (http://www.win.tue.nl/~wsdwnb/)class debruijn : public vnode_impl, public stabilizable {  chordID mydoubleID;  int logbase_;  void debruijn::dodebruijn (user_args *sbp, debruijn_arg *da);  void finddoublesucc_cb (vec<chord_node> sl, route path, chordstat status);  void debruijn_upcall_done (debruijn_arg *da,			     debruijn_res *res,			     user_args *sbp,			     bool stop);   public:  static ref<vnode> produce_vnode (ref<chord> _chordnode, 				   ref<rpc_manager> _rpcm,				   ref<location> _l);  debruijn (ref<chord> _chordnode,	    ref<rpc_manager> _rpcm,	    ref<location> _l,	    int logbase);  ~debruijn ();  virtual void print (strbuf &outbuf) const;    virtual void dispatch (user_args *sbp);    void fill_nodelistres (chord_nodelistres *res)  {    res->resok->nlist.setsize (0);  }  void fill_nodelistresext (chord_nodelistextres *res)  {    res->resok->nlist.setsize (0);  }  void stabilize();  bool isstable () { return true; };  bool continous_stabilizing () { return true; };  bool backoff_stabilizing () { return false; };  void do_backoff () { return; };  void do_continuous () { stabilize (); };  ptr<location> closestsucc (const chordID &x);  virtual ptr<location> closestpred (const chordID &x, const vec<chordID> &f);  ptr<location> debruijnptr (void);    ptr<route_iterator> produce_iterator (chordID xi);  ptr<route_iterator> produce_iterator (chordID xi,					const rpc_program &uc_prog,					int uc_procno,					ptr<void> uc_args);  route_iterator *produce_iterator_ptr (chordID xi);  route_iterator *produce_iterator_ptr (chordID xi,					const rpc_program &uc_prog,					int uc_procno,					ptr<void> uc_args);};class route_debruijn : public route_iterator {  int hops;  int logbase_;  vec<chordID> virtual_path;  vec<chordID> k_path;  void make_hop (ptr<location> n, chordID &x, chordID &k, chordID &i);  void make_hop_cb (ptr<bool> del, debruijn_res *res, clnt_stat err);  void send_hop_cb (bool done); public:  route_debruijn (ptr<debruijn> vi, chordID xi, int logbase);  route_debruijn (ptr<debruijn> vi, chordID xi, int logbase,		  rpc_program uc_prog,		  int uc_procno,		  ptr<void> uc_args);  ~route_debruijn () {};  void send (ptr<chordID> guess);  virtual void first_hop (cbhop_t cb, ptr<chordID> guess);  void print ();  void next_hop ();  ptr<location> pop_back ();};#endif /* _DEBRUIN_H_ */

⌨️ 快捷键说明

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