[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