summaryrefslogtreecommitdiff
path: root/icclient
diff options
context:
space:
mode:
authorꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id>2019-10-05 18:06:14 +0800
committerꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id>2019-10-05 18:06:14 +0800
commit89b7bef4c433bb42588eeec6e6f0d3d1c2a19b78 (patch)
tree06e1c4e8373ea09bf683f21b277329279ae292bd /icclient
parentc5660800d60921392b66703b30dfc72d5f42d351 (diff)
Separate the product structure definition
so the catalog structure doesn't have to be included when not needed. product.c has too few implementations, so it's merged to client.c
Diffstat (limited to 'icclient')
-rw-r--r--icclient/catalog.h9
-rw-r--r--icclient/client.h3
-rw-r--r--icclient/product.h20
3 files changed, 16 insertions, 16 deletions
diff --git a/icclient/catalog.h b/icclient/catalog.h
new file mode 100644
index 0000000..b38434b
--- /dev/null
+++ b/icclient/catalog.h
@@ -0,0 +1,9 @@
+#ifndef ICCLIENT_CATALOG_H
+#define ICCLIENT_CATALOG_H
+
+struct icclient_catalog {
+ size_t length;
+ struct icclient_product *products[];
+};
+
+#endif // ICCLIENT_CATALOG_H
diff --git a/icclient/client.h b/icclient/client.h
index 053eee5..e49af36 100644
--- a/icclient/client.h
+++ b/icclient/client.h
@@ -1,6 +1,7 @@
#ifndef ICCLIENT_CLIENT_H
#define ICCLIENT_CLIENT_H
+struct icclient_product;
struct icclient_catalog;
#ifdef __cplusplus
@@ -22,6 +23,8 @@ extern "C" {
, size_t (*handler)(void *contents, size_t size
, size_t nmemb, void *userdata)
, void **dataptr);
+ void icclient_freeproduct(struct icclient_product *product);
+ void icclient_freecatalog(struct icclient_catalog *catalog);
void icclient_cleanup();
#ifdef __cplusplus
diff --git a/icclient/product.h b/icclient/product.h
index 0b0e509..4e879e0 100644
--- a/icclient/product.h
+++ b/icclient/product.h
@@ -2,23 +2,11 @@
#define ICCLIENT_PRODUCT_H
struct icclient_product {
- char *sku, *description, *comment, *image;
+ char *sku;
+ char *description;
+ char *comment;
+ char *image;
double price;
};
-struct icclient_catalog {
- size_t length;
- struct icclient_product *products[];
-};
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
- void icclient_catalog_free(struct icclient_catalog *catalog);
-
-#ifdef __cplusplus
-}
-#endif
-
#endif // ICCLIENT_PRODUCT_H