[Development] unified data model API in QtCore => thin wrapper proposal

Arnaud Clère arnaud.clere at minmaxmedical.com
Mon Aug 20 10:42:51 CEST 2018


Hi,

Unfortunately I do not think I can help with the QCborValue development and Json/Cbor refactoring. 
Just, from my experience, Json and Cbor share so much that the refactoring makes a lot of sense and having an efficient, editable, in-memory representation of the underlying data is a nice goal for many use cases (was not it the idea of a "JsonDb"?).

Now, regarding the "structured traces" use case, converting the user-defined data types (and Qt types) to such representation at the tracepoint would only make sense performance-wise if the in-memory representation:
- require one or very few heap allocations per tracepoint
- can be copied to the log as a single chunk
Does the new design would allow that?

Even in this case, it would probably be better performance-wise to use the kind of thin-wrapper "QBind" API that I am pushing since we managed to implement it without heap allocation and with only 20% CPU overhead compared to hand-written serialisation (be it QDebug or QDataStream, etc.).

Finally, as a user, I can cope with reasonable API changes but new features suck if they do not work, so I would probably stay away from the "torpedoes" unless I am sure they are targeting the right thing 😊

Cheers,
Arnaud

-----Original Message-----
From: Thiago Macieira <thiago.macieira at intel.com> 
Sent: jeudi 16 août 2018 22:11
To: development at qt-project.org
Subject: Re: [Development] unified data model API in QtCore => thin wrapper proposal

On Wednesday, 20 June 2018 06:05:35 PDT Arnaud Clère wrote:
> Hi,
> Thiago, did you decide on something regarding QCborValue in Qt5.12?

Hello Arnaud, all

No, I have not. I have not had the time to read your email yet and nor have I had time to even test if the API I designed does what we discussed in Oslo.

I will not have time to do any of that before the 5.12 feature freeze.

So we need a summary decision:
 a) yank it out
 b) leave it as is and damn the torpedoes

Unless someone can volunteer to test. I *think* my design is slightly better than QJsonValue, so the following should work:

	value[1]["hello"][32] = false;

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center






More information about the Development mailing list