diff options
author | ꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id> | 2021-06-18 10:45:11 +0800 |
---|---|---|
committer | ꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id> | 2021-06-18 10:45:11 +0800 |
commit | 4870212610b467e6fca26639b8fb129c04f300dc (patch) | |
tree | 182c1cb97eeeddd86d518cf00c9525ed7a2230b1 | |
parent | ac8541c6cf3b5dc6936e458dde83e1eebf0ce9d2 (diff) |
Hide icclient types away from the interface
-rw-r--r-- | client.cxx | 36 | ||||
-rw-r--r-- | qicclient.hxx | 7 |
2 files changed, 23 insertions, 20 deletions
@@ -4,19 +4,21 @@ #include "qicclient.hxx" #include "qicclient/ord.hxx" -static QICClient::Client* client; +namespace QICClient { -static void responseHandler(icclient_response* response) -{ - client->emitResponse(response); -} + static Client* client; -static void catalogCallback(icclient_catalog* catalog) -{ - client->emitCatalog(catalog); -} + static void resultsHandler(icclient_response* response) + { + client->emitResults(QString{response->data}); + icclient_free_response(response); + } -namespace QICClient { + static void catalogCallback(icclient_catalog* catalog) + { + client->emitCatalog(new Catalog{catalog}); + icclient_free_catalog(catalog); + } Client::Client(char const* sampleURL, char const* image_Dir, char const* certificate) { @@ -31,12 +33,12 @@ namespace QICClient { void Client::results(QString const& prodGroup) { - icclient_results(prodGroup.toLatin1().constData(), responseHandler, nullptr); + icclient_results(prodGroup.toLatin1().constData(), resultsHandler, nullptr); } void Client::allProducts() { - icclient_allproducts(responseHandler, nullptr); + icclient_allproducts(resultsHandler, nullptr); } void Client::strapResults(QString const& prodGroup) @@ -49,16 +51,14 @@ namespace QICClient { icclient_allproducts(nullptr, catalogCallback); } - void Client::emitResponse(icclient_response* response) + void Client::emitResults(QString const& results) { - emit gotResults(QString{response->data}); - icclient_free_response(response); + emit gotResults(results); } - void Client::emitCatalog(icclient_catalog* catalog) + void Client::emitCatalog(Catalog* catalog) { - emit gotCatalog(new Catalog{catalog}); - icclient_free_catalog(catalog); + emit gotCatalog(catalog); } void Client::flyPage(QString const& sku,void (*handler)(icclient_response*)) diff --git a/qicclient.hxx b/qicclient.hxx index df9da45..3b7f0d5 100644 --- a/qicclient.hxx +++ b/qicclient.hxx @@ -22,9 +22,10 @@ namespace QICClient { * \param certificate Path to the CA certificate file. */ Client(char const* sampleURL, char const* image_Dir, char const* certificate = nullptr); + /*! + * \brief Destructor. + */ ~Client(); - void emitResponse(icclient_response* response); - void emitCatalog(icclient_catalog* catalog); /*! * \brief For fetching data about a specific product. * \param sku The SKU of the item to order. @@ -38,6 +39,8 @@ namespace QICClient { * \param order The order. */ void order(QString const& sku, Catalog const& catalog, Ord& order); + void emitResults(QString const& response); + void emitCatalog(Catalog* catalog); public slots: /*! |