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

📄 cd_prot.x

📁 chord 源码 http://pdos.csail.mit.edu/chord/
💻 X
字号:
%#include <chord_types.h>%#if 0%from chord_types import *%#endiftypedef chordID cd_vnode;// This seems silly.struct chord_node_wire_plus_id {  chord_node_wire wire;  chordID id;};/* NEWCHORD *******************************************************/enum cd_routing_mode {  MODE_SUCC,  MODE_CHORD,  MODE_DEBRUIJN,  MODE_PROX,  MODE_PROXREC,  MODE_PNS,  MODE_PNSREC,  MODE_CHORDREC,  MODE_TCPPNSREC};struct cd_newchord_arg {  /* wellknownhost can be zero-length, indicating that cd should figure   * out the local machine's address */  chord_hostname wellknownhost;  int wellknownport;  /* myname can be zero-length, and the meaning is the same as for   * wellknownhost */  chord_hostname myname;  int myport;  int maxcache;  int nvnodes;  cd_routing_mode routing_mode;};struct cd_newchord_res_ok {  int nvnodes;  cd_vnode vnodes<>;};union cd_newchord_res switch (chordstat stat) { case CHORD_OK:   cd_newchord_res_ok resok; default:   void;};/* UNNEWCHORD *****************************************************/struct cd_unnewchord_res {  chordstat stat;};/* LOOKUP *********************************************************/struct cd_lookup_arg {  cd_vnode vnode;  chordID key;};struct cd_lookup_res_ok {  chord_node_wire_plus_id successors<>;  chord_node_wire_plus_id route<>;};union cd_lookup_res switch (chordstat stat) {  case CHORD_OK:    cd_lookup_res_ok resok;  default:    /* CHORD_NOTINRANGE if the vnode id is invalid */    void;};/* GETSUCCLIST or GETPREDLIST *************************************/struct cd_getsucclist_arg {  cd_vnode vnode;};struct cd_getsucclist_res_ok {  chord_node_wire_plus_id nodes<>;};union cd_getsucclist_res switch (chordstat stat) {  case CHORD_OK:    cd_getsucclist_res_ok resok;  default:    /* CHORD_NOTINRANGE if the vnode id is invalid */    void;};/* program ********************************************************/program CD_PROGRAM {	version CD_VERSION {		void		CD_NULL (void) = 0;		void		CD_EXIT (void) = 1;		/** Cleanly shut down cd process. */		cd_newchord_res		CD_NEWCHORD(cd_newchord_arg) = 2;		/** Instantiate the chord object (returns CHORD_NOINRANGE		    if the Chord object already exists) */		cd_unnewchord_res		CD_UNNEWCHORD(void) = 3;		/** Delete the chord object (returns CHORD_NOINRANGE if the		    Chord object doesn't exist) */		cd_lookup_res		CD_LOOKUP(cd_lookup_arg) = 4;		/** Find successor node of chord ID */                cd_getsucclist_res                CD_GETSUCCLIST(cd_getsucclist_arg) = 5;                /** Get list of successors of one of our vnodes */                cd_getsucclist_res                CD_GETPREDLIST(cd_getsucclist_arg) = 6;                /** Get list of predecessors of one of our vnodes */	} = 1;} = 344600;

⌨️ 快捷键说明

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