[Development] API review for a new QDnsResolver class
Jeremy Lainé
jeremy.laine at m4x.org
Wed Nov 9 18:43:26 CET 2011
On 11/09/2011 06:21 PM, Robin Burchell wrote:
> On Wed, Nov 9, 2011 at 6:05 PM, Jeremy Lainé<jeremy.laine at m4x.org> wrote:
>> This talk about QtConcurrent has me wondering: do we need an asynchronous API at all?
> I really dislike synchronous APIs, even more so when they're the only
> option. Reason being that most 'normal' people won't make the effort
> to get it right, even when that effort is just creating a slot. I've
> seen this repeatedly in code like QtContacts, as well as complaining
> about things like QNAM not enabling them to make those mistakes. Now,
> while I'm a consultant, and according to the usual jokes, I get paid
> to fix other people's mistakes, I'd rather not create more
> capabilities for people to make them. ;)
>
OK, so if we only want an async API, and we can't rely on QtConcurrent, we're back to
using QObject to emits signals. That leaves just two options:
A/ static QDnsReply* QDnsReply::lookup(QDnsReply::Type, QString);
pro: easy to connect to the QDnsReply's signal
con: it's entirely up to the user to handle deletion. Judging by your comments above, I
doubt you favor it?
or
B/ static QSharedPointer<QDnsReply> QDnsReply::lookup(QDnsReply::Type, QString);
pro: memory ownership is explicit
con: how used are our users to manipulating QSharedPointer with respect to signals and such?
Jeremy
More information about the Development
mailing list