buttonrpc专题

开源软件:buttonrpc (一)

开源软件:buttonrpc (一) 本文采用知识共享署名 4.0 国际许可协议进行许可,转载时请注明原文链接,图片在使用时请保留全部内容,可适当缩放并在引用处附上图片所在的文章链接。 开源地址编译运行 buttonrpcbuttonrpc_cpp14 原理 RPCbuttonrpc 分析 Call ID映射:buttonrpc.hpp序列化和反序列化:Serializer.hpp网

开源软件:buttonrpc (C++语法分析)

开源软件:buttonrpc (C++语法分析) 本文采用知识共享署名 4.0 国际许可协议进行许可,转载时请注明原文链接,图片在使用时请保留全部内容,可适当缩放并在引用处附上图片所在的文章链接。 C++ 语法分析 templatetypenamestd::bindstd::is_same<R, void>::valuestd::enable_ifstd::decaystd::rev

远程过程调用-buttonrpc源码解析7-函数返回值

前一篇文章讲述了服务端如何进行函数调用,但并未分析函数返回值,本节进行重点分析。 在负责拆分委托函数的callproxy_函数内,最终得到了型如 typename type_xx<R>::type r = call_helper<R>(ff, args);或者 typename type_xx<R>::type r = call_helper<R>(func, args);的调用形式。 1、函数c

远程过程调用-buttonrpc源码解析6-函数调用

前一篇文章讲述了服务端如何利用std::bind绑定函数,统一函数调用形式。本片文章继续分析服务端如何调用绑定后的函数。 解惑:前一篇里buttonrpc源码采用了buttonrpc::callproxy<F>或buttonrpc::callproxy<F, S>函数作为绑定的调用对象,而将func作为绑定的参数。那为什么不直接使用型如std::bind(func, args...)或std::b

远程过程调用-buttonrpc源码解析1-序列化

分析buttonrpc中的序列化 源码提供了StreamBuffer类,该类继承自vector<char>,用来存储数据。 // 此处省略实现...class StreamBuffer : public vector<char>{}; 并提供了Serializer类,用来序列化数据。 // 此处省略部分实现...class Serializer{public:enum ByteO