[Libreoffice-commits] core.git: tdf#97597: attempt to add test for multithreaded input stream buffering.
Stephan Bergmann
sbergman at redhat.com
Wed Jan 18 15:06:25 UTC 2017
On 01/18/2017 03:29 PM, Kohei Yoshida wrote:
>> On January 18, 2017 at 3:31 AM Stephan Bergmann <sbergman at redhat.com> wrote:
>> Hm, I stumbled when seeing this commit. Those "new-style" service ctors
>> are meant to make service instantiation easier and safer compared to the
>> original create-instance-from-factory way. While createWithArguments
>> addresses safety in the return type, it does nothing for the arguments
>> (doesn't even document what they could be).
>
> Can you elaborate on this? Is it the lack of documentation you are concerned with (which I can gladly add), or what is lacking in terms of the "safety of the arguments"?
With something like
createWithUrlAndBuffering([in] string url, [in] boolean buffered)
the available arguments and their types would be obvious to users, and
client code couldn't accidentally pass unknown or wrongly-typed arguments.
Something like createWithArguments may be appropriate if the set of
arguments across calls is just too
diverse/open-ended/extending-in-future to come up with a reasonable set
of more tightly typed ctors. For a one-off case like here, I just don't
see its benefits (over using a traditional create-instance-from-factory
approach at the one call site) outweighing its (API maintenance) costs.
>> For an apparently (at least for now) one-off usage, I'm not sure adding
>> such a ctor is too useful overall. Maybe instead use the old
>> create-instance-from-factory way in that one place?
>
> Well, I added this because I saw value in adding such a ctor. So, at least one person finds it useful. :-) If that's not enough of an argument for adding a new ctor, then so be it.
Yeah, API design is hard. I don't have the crystal ball either; I'm
just uttering my thoughts.
More information about the LibreOffice
mailing list