recroute.h

来自「基于DHT的对等协议」· C头文件 代码 · 共 79 行

H
79
字号
#ifndef _RECROUTE_H_#define _RECROUTE_H_#include "chord.h"#include <recroute_prot.h>#include "route_recchord.h"#include <ihash.h>template<class T>class recroute : public T { private:  bool shave;  int lto;  timecb_t *sweep_cb;  ihash<u_long, route_recchord,    &route_recchord::routeid_, &route_recchord::hlink_> routers;   protected:  recroute (ref<chord> _chord, ref<rpc_manager> _rpcm, ref<location> _l);  ~recroute (void);  void recroute_hop_cb (ptr<recroute_route_arg> nra, ptr<location> p,			vec<chordID> failed,			recroute_route_stat *res,			clnt_stat status);  void recroute_sent_complete_cb (clnt_stat status);  void dispatch (user_args *sbp);  void dorecroute (user_args *sbp, recroute_route_arg *ra);  void dopenult (user_args *sbp, recroute_penult_arg *ra);  void docomplete (user_args *sbp, recroute_complete_arg *ca);  void find_succlist_cb (cbroute_t cb, route_recchord *ri, bool done);  void sweeper ();  void dorecroute_sendpenult (recroute_route_arg *ra,			      ptr<location> nexthop,			      ptr<location> p,			      vec<ptr<location> > cs);  void dorecroute_sendpenult_cb (ptr<recroute_penult_arg> nra,				 ptr<location> p,				 vec<chordID> failed,				 clnt_stat err);  void dorecroute_sendcomplete (recroute_route_arg *ra,				const vec<ptr<location> > cs);  void dorecroute_sendroute (recroute_route_arg *ra, ptr<location> p);    bool recroute_hop_timeout_cb (ptr<recroute_route_arg> nra,				ptr<location> p,				vec<chordID> failed,				chord_node n,				int rexmit_number); public:  static ref<vnode> produce_vnode (ref<chord> _chordnode,				   ref<rpc_manager> _rpcm,				   ref<location> _l);    // Override select routing related methods of vnode  void stats () const;  void find_succlist (const chordID &x, u_long m, cbroute_t cb,		      ptr<chordID> guess);    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);};#endif /* _RECROUTE_H_ */

⌨️ 快捷键说明

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