[Tarantool-patches] [PATCH 2.X v4 4/4] module api: box_ibuf_* wrappers
Timur Safin
tsafin at tarantool.org
Fri Oct 16 01:27:08 MSK 2020
: From: Vladislav Shpilevoy <v.shpilevoy at tarantool.org>
: Subject: Re: [Tarantool-patches] [PATCH 2.X v4 4/4] module api: box_ibuf_*
: wrappers
:
: Thanks for the patch!
:
: See 4 comments below.
:
...
: > +
: > +#include <stdlib.h>
: > +
: > +#include "ibuf.h"
: > +#include <small/ibuf.h>
:
: 1. Please, don't include non-system headers using <>. Use "".
: The same for box/ibuf.h.
Ok.
:
: > +
: > +void *
: > +box_ibuf_reserve(box_ibuf_t *ibuf, size_t size)
: > +{
: > + return ibuf_reserve(ibuf, size);
:
: 2. It should set a diag error in case of fail.
This is already updated accordingly in the branch
tsafin/gh-5273-expand-module-api-v4.
:
: > +}
: > +
: > +void
: > +box_ibuf_read_range(box_ibuf_t *ibuf, char ***rpos, char ***wpos)
: > +{
: > + assert(ibuf != NULL);
: > + if (ibuf == NULL)
: > + return;
: > + if (rpos != NULL)
: > + *rpos = &ibuf->rpos;
: > + if (wpos != NULL)
: > + *wpos = &ibuf->wpos;
:
: 3. I would better assume all the arguments are not NULL, and document
: it. Especially ibuf itself. We need some border where to stop the
: sanity checks, and this looks like an overkill already. For example,
: box_tuple_ref() also works with a pointer, but it does not check for
: it being not NULL. It is just stupid to call method of an object with
: that object passed as NULL. The same below.
Please see updated branch tsafin/gh-5273-expand-module-api-v4 for the
current version. For rpos and wpos I need to check for NULL because
we may call for only single, particular argument (like we do in some
cases in current external module) thus we pass NULL there.
:
: > +}
: > +
: > +void
: > +box_ibuf_write_range(box_ibuf_t *ibuf, char ***wpos, char ***end)
: > +{
: > + if (ibuf == NULL)
: > + return;
: > + if (wpos != NULL)
: > + *wpos = &ibuf->wpos;
: > + if (end != NULL)
: > + *end = &ibuf->end;
: > +
: > +}
...
: > +
: > +/**
: > + * Reserve requested amount of bytes in ibuf buffer
:
: 4. Please, finish sentences with a dot. I don't understand.
: Is it so hard for people to put a dot in the end? Does it
: cost money or something? Do people write the same way in
: other places, like emails, documents? Why is the code allowed
: to be treated worse?
:
: Talking of the comments content - they are mostly useless.
: What is read range, what is write range? How do they relate?
: Is a user supposed to update them manually, when work with the
: buffer? Current description makes it impossible to use
: box_ibuf_t without reading the source code. What users are
: not supposed to do usually to be able to use the API.
I'll return to comments and test in a follow-up patchset
(see my earlier discussion with A.Turenko) and there I'll
put all dots. Promise! In very meaningful comments. Promise!!
Timur
More information about the Tarantool-patches
mailing list