前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CSE lab7 RPC 攻略

CSE lab7 RPC 攻略

作者头像
ApacheCN_飞龙
发布2019-02-15 11:48:28
3780
发布2019-02-15 11:48:28
举报
文章被收录于专栏:信数据得永生

part A marshall: 通过观察可以得知,所有无符号的整形的实现相当于从高位到低位的每个字节依次调用rawbyte,所有的有符号整形都是直接调用同一尺寸的无符号整形。 一种实现是调用rawbyte4次,另一种是调用ushort的重载方法两次。 unmarshall: 这回引用传参不能强转了,所以每个尺寸的无符号和有符号整形写了两遍相同的代码。 不解释,直接照搬int的实现就成。 part B checkduplicate_and_update: 1. 遍历一遍reply_t的list(reply_window_[clt_nonce]) 对于每个reply_t对象: 1.1 如果xid等于参数xid且cb_present为true,将那个对象的buf和sz赋给参数*b和*sz,返回DONE 1.2 如果xid等于参数xid且cb_present为false,返回INPROGRESS 2. 如果list不为空 且参数xid小于所有reply_t对象的xid 返回FORGOTTEN 3. 删掉list中所有满足xid < xid_rep的对象 4. 向list插入一个新的reply_t对象,它的xid为参数xid,cb_present为false 返回NEW *. 为了删除和判断方便,可以把list实现成按照xid升序排列的 add_reply: 1. 遍历一遍reply_t的list 对于每个reply_t对象: 1.1 如果xid等于参数xid 将参数的b和sz赋给对象的buf和sz 并将对象的cb_present置为true 之后break

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014年05月28日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档