summaryrefslogtreecommitdiff
path: root/interchange.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'interchange.hxx')
-rw-r--r--interchange.hxx78
1 files changed, 78 insertions, 0 deletions
diff --git a/interchange.hxx b/interchange.hxx
new file mode 100644
index 0000000..e25a32c
--- /dev/null
+++ b/interchange.hxx
@@ -0,0 +1,78 @@
+#ifndef INTERCHANGE_HXX
+#define INTERCHANGE_HXX
+
+#include <QObject>
+#include "interchange/catalog.hxx"
+
+namespace Interchange {
+
+ class Ord;
+
+ class Interchange : public QObject
+ {
+ Q_OBJECT
+
+ public:
+ /*!
+ * \brief Constructor.
+ * \param sampleURL The value of the SAMPLEURL setting in products/variable.txt.
+ * \param image_Dir The value of the IMAGE_DIR setting in products/variable.txt.
+ * \param certificate Path to the CA certificate file.
+ */
+ Interchange(char const* sampleURL, char const* image_Dir, char const* certificate = nullptr);
+ /*!
+ * \brief Destructor.
+ */
+ ~Interchange();
+ /*!
+ * \brief For putting an item to a cart.
+ * \param sku The SKU of the item to order.
+ * \param catalog The catalog from which the item is.
+ * \param order The order.
+ */
+ void order(QString const& sku, Catalog const& catalog, Ord& order);
+
+ public slots:
+ /*!
+ * \brief For fetching products that belong a specific group.
+ * \param prodGroup The name of the product group.
+ */
+ void catalog(QString const& prodGroup);
+ /*!
+ * \brief For fetching data about all active products.
+ */
+ void allProducts();
+ /*!
+ * \brief For fetching data about a specific product.
+ * \param sku The SKU of the item to order.
+ */
+ void product(QString const& sku);
+ /*!
+ * \brief For fetching data from a specific path.
+ * \param path The path.
+ */
+ void page(QString const& path);
+ /*!
+ * \brief For fetching products that belong a specific group.
+ * \param prodGroup The name of the product group.
+ */
+ void defaultCatalog(QString const& prodGroup);
+ /*!
+ * \brief For fetching data about all active products.
+ */
+ void defaultAllProducts();
+
+ signals:
+ void gotCatalog(QString const& response);
+ void gotProduct(QString const& response);
+ void gotPage(QString const& response);
+
+ protected:
+ void emitCatalog(QString const& response);
+ void emitProduct(QString const& response);
+ void emitPage(QString const& response);
+ };
+
+}
+
+#endif