c++11 - 如何将构建器对象写入 C++ 中 Cap'n Proto 中的输出流对象而不是文件?
问题描述
我正在创建一个这样的 CAP'N PROTO 构建器对象:
::capnp::MallocMessageBuilder message;
InjectorRequestMsg::Builder injectorRequestMsg = message.initRoot<InjectorRequestMsg>();
/然后设置 injectorRequestMsg 的所有数据成员/
之后我试图将对象写入这样的文件:
writePackedMessageToFd(fd, message);
这完美地工作。但是,我无法弄清楚如何使用以下方法将此对象写入输出流对象:
void writePackedMessage(kj::BufferedOutputStream& output, MessageBuilder& builder);
实际上,我在创建kj::BufferedOutputStream对象时遇到了问题。
关于这方面的任何想法或一个简单的例子都会对我有很大帮助。
谢谢!
解决方案
我需要做类似的事情。我需要将我的数据输出到内存空间。我能够这样做:
kj::VectorOutputStream stream;
::capnp::writePackedMessage(stream, message);
/* then use stream.getArray() to get access to the data */
推荐阅读
- python - 在我解析任何内容之前网站退出
- multithreading - 是线程还是进程导致stackoverflow错误
- reactjs - 反应 onClick target.value 未定义
- sql - SQL如何平均由Case Statement形成的两个字段
- reactjs - 当我尝试使用获取的 json 调度操作时,我在这里缺少什么?
- python - 在一张图中绘制多个熊猫数据框 python plotly
- linux - Bash 中的子shell,使用 crontab
- python - 我已经写了这段代码。怎么了??错误是(无效的语法)
- amazon-web-services - aws lambda - 用户无权执行:cognito-idp:ListUsers on resource
- javascript - D3 日期未显示在 X 轴上