From d6e1d66de6b539b6af4a7f517d84a07f17e75c2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=A6=8C=EA=A6=AB=EA=A6=B6=EA=A6=8F=EA=A7=80=EA=A6=A6?= =?UTF-8?q?=EA=A6=BF=EA=A6=A7=EA=A6=AE=EA=A6=91=EA=A6=A9=EA=A6=AD=EA=A7=80?= Date: Sun, 13 Jun 2021 17:49:57 +0800 Subject: gotResults now passes icclient_fetch_t* so the signal can be connected to some slot. --- client.cxx | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) (limited to 'client.cxx') diff --git a/client.cxx b/client.cxx index 4321726..7b91e2d 100644 --- a/client.cxx +++ b/client.cxx @@ -1,15 +1,14 @@ +#include #include #include -#include #include "qicclient.hxx" #include "qicclient/ord.hxx" -static QICClient::Client *client; +static QICClient::Client* client; -static void callback(icclient_catalog* catalog) +static void handle_results(icclient_fetch_t* fetch) { - client->emitCatalog(catalog); - icclient_free_catalog(catalog); + client->emitResults(fetch); } namespace QICClient { @@ -25,22 +24,26 @@ namespace QICClient { icclient_cleanup(); } - void Client::results(QString const& prodGroup, icclient_handler handler) + void Client::results(QString const& prodGroup) { - icclient_results(prodGroup.toLatin1().constData(), callback, handler); + icclient_results(prodGroup.toLatin1().constData(), [](icclient_catalog* catalog) { + icclient_free_catalog(catalog); + }, handle_results); } - void Client::allProducts(icclient_handler handler) + void Client::allProducts() { - icclient_allproducts(callback, handler); + icclient_allproducts([](icclient_catalog* catalog) { + icclient_free_catalog(catalog); + }, handle_results); } - void Client::emitCatalog(icclient_catalog* catalog) + void Client::emitResults(icclient_fetch_t* fetch) { - emit gotResults(new Catalog{catalog}); + emit gotResults(fetch); } - void Client::flyPage(QString const& sku,icclient_handler handler) + void Client::flyPage(QString const& sku,void (*handler)(icclient_fetch_t*)) { icclient_product* product = nullptr; icclient_flypage(sku.toLatin1().constData(), handler, &product); -- cgit v1.2.3