[BRLTTY] Low-level BrlAPI questions
Aura Kelloniemi
kaura.dev at sange.fi
Tue May 11 11:35:53 EDT 2021
Hi
On 2021-05-11 at 09:52 +0200, Samuel Thibault <samuel.thibault at ens-lyon.org> wrote:
> Aura Kelloniemi, le mar. 11 mai 2021 09:49:04 +0300, a ecrit:
> > And what about a field (at the end of the struct) that tells the maximum size
> > of the parameter value array (in bytes or elements)? Or is there already a way
> > to know how much space to allocate for a parameter value?
> The current count field is to provide this information.
> For variable values, brlapi_getParameter returns the actually needed
> size, so you can re-allocate a bigger buffer. Or to avoid a round-trip
> you can use getParameterAlloc which immediately allocates the proper
> size.
getParameterAlloc knows the maximum possible size of a parameter – it does not
need to do any round-tripping. Is there a reason why this information couldn't
be available somewhere – a global constant (BRLAPI_PARAM_VALUE_MAX_SIZE) or
preferably per-parameter in its properties.
Everything below considers the case where .isArray == true, until otherwise
stated.
If you are to add a flag which tells that an array has a variable size,
couldn't the current .count field tell the maximum possible size? Or can the
value be arbitrarily big (in which case unnecessary allocation should be
avoided)?
I am trying to find a way to make the API as simple as possible, but not so
simple that it complicates bindings' writing. This is the reason I would like
the maximum size to be easily available, and also why I would like to have
uniform handling for all arrays – strings included.
And then I'll ask about the case where .siArray == false:
Shouldn't this too be very simple? The parameter will hold just one value –
i.e. one int, one bool, one char, nothing that is variable-length. Do you
disagree?
--
Aura
More information about the BRLTTY
mailing list