[Tarantool-patches] [PATCH v2 1/1] box: export box_session_push to the public C API
Kirill Yukhin
kyukhin at tarantool.org
Tue Apr 14 10:54:49 MSK 2020
Hello,
On 08 Apr 01:20, Vladislav Shpilevoy wrote:
> API is different from box.session.push() - sync argument was
> removed. It will disappear from Lua API as well, because it just
> is not needed here. Session is omitted as well. Indeed, a user
> can't push to a foreign session, and the current session can be
> obtained inside box_session_push(). And anyway session is not in
> the public C API.
>
> Internally dump into iproto is done using obuf_dup(), just like
> tuple_to_obuf() does. obuf_alloc() would be a bad call here,
> because it wouldn't be able to split the pushed data into several
> obuf chunks, and would cause obuf fragmentation.
>
> Dump into plain text behaves just like a Lua push - it produces a
> YAML formatted text or Lua text depending on output format. But to
> turn MessagePack into YAML or Lua text an intermediate Lua
> representation is used, because there are no a MessagePack -> YAML
> and MessagePack -> Lua text translators yet.
>
> Closes #4734
>
> @TarantoolBot document
> Title: box_session_push() C API
>
> There is a new function in the public C API:
> ```C
> int
> box_session_push(const char *data, const char *data_end);
> ```
>
> It takes raw MessagePack, and behaves just like Lua
> `box.session.push()`.
> ---
> Branch: http://github.com/tarantool/tarantool/tree/gerold103/gh-4734-export-box-session-push
> Issue: https://github.com/tarantool/tarantool/issues/4734
I've checked your patch into master.
--
Regards, Kirill Yukhin
More information about the Tarantool-patches
mailing list