Как записать объект построителя в объект потока вывода в Cap'n Proto в C ++ вместо файла? - PullRequest
0 голосов
/ 16 января 2019

Я создаю объект конструктора 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 .
Любая идея или простой пример на этот счет будут очень полезны для меня.
Спасибо!

1 Ответ

0 голосов
/ 08 марта 2019

Мне нужно было сделать что-то подобное. Мне нужно было вывести свои данные в область памяти. Я смог сделать это, выполнив:

kj::VectorOutputStream stream;
::capnp::writePackedMessage(stream, message);
/* then use stream.getArray() to get access to the data */
...