summaryrefslogtreecommitdiff
path: root/src/backend/taler-merchant-httpd.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/taler-merchant-httpd.h')
-rw-r--r--src/backend/taler-merchant-httpd.h114
1 files changed, 105 insertions, 9 deletions
diff --git a/src/backend/taler-merchant-httpd.h b/src/backend/taler-merchant-httpd.h
index b60d91bd..7dc1b647 100644
--- a/src/backend/taler-merchant-httpd.h
+++ b/src/backend/taler-merchant-httpd.h
@@ -19,13 +19,86 @@
* @author Marcello Stanisci
*/
-#include "merchant_db.h"
+#include "platform.h"
+#include "taler_merchantdb_lib.h"
/**
- * Kick MHD to run now, to be called after MHD_resume_connection().
+ * Shorthand for exit jumps.
*/
-void
-TM_trigger_daemon (void);
+#define EXITIF(cond) \
+ do { \
+ if (cond) { GNUNET_break (0); goto EXITIF_exit; } \
+ } while (0)
+
+
+/**
+ * Mint
+ */
+struct MERCHANT_Mint
+{
+ /**
+ * Hostname
+ */
+ char *hostname;
+
+ /**
+ * A connection to this mint
+ */
+ struct TALER_MINT_Handle *conn;
+
+ /**
+ * This mint's context (useful to the event loop)
+ */
+ struct TALER_MINT_Context *ctx;
+
+ /**
+ * Task we use to drive the interaction with this mint.
+ */
+ struct GNUNET_SCHEDULER_Task *poller_task;
+
+ /**
+ * Flag which indicates whether some HTTP transfer between
+ * this merchant and the mint is still ongoing
+ */
+ int pending;
+
+};
+
+
+struct MERCHANT_WIREFORMAT_Sepa
+{
+ /**
+ * The international bank account number
+ */
+ char *iban;
+
+ /**
+ * Name of the bank account holder
+ */
+ char *name;
+
+ /**
+ *The bank identification code
+ */
+ char *bic;
+
+ /**
+ * The latest payout date when the payment corresponding to this account has
+ * to take place. A value of 0 indicates a transfer as soon as possible.
+ */
+ struct GNUNET_TIME_AbsoluteNBO payout;
+};
+
+
+struct MERCHANT_Auditor
+{
+ /**
+ * Auditor's legal name
+ */
+ char *name;
+
+};
+
struct TM_HandlerContext;
@@ -48,10 +121,15 @@ struct TM_HandlerContext
};
-extern struct MERCHANT_Mint *mints;
extern struct MERCHANT_WIREFORMAT_Sepa *wire;
+
+extern struct MERCHANT_Mint **mints;
+
+extern struct GNUNET_CRYPTO_EddsaPrivateKey *privkey;
+
+
extern PGconn *db_conn;
extern long long salt;
@@ -60,11 +138,29 @@ extern unsigned int nmints;
extern struct GNUNET_TIME_Relative edate_delay;
-extern struct GNUNET_CRYPTO_EddsaPrivateKey *privkey;
-
-extern struct GNUNET_SCHEDULER_Task *poller_task;
-
void
context_task (void *cls,
const struct GNUNET_SCHEDULER_TaskContext *tc);
+
+
+
+
+/**
+ * Take the global wire details and return a JSON containing them,
+ * compliantly with the Taler's API.
+ *
+ * @param wire the merchant's wire details
+ * @param salt the nounce for hashing the wire details with
+ * @return JSON representation of the wire details, NULL upon errors
+ */
+json_t *
+MERCHANT_get_wire_json (const struct MERCHANT_WIREFORMAT_Sepa *wire,
+ uint64_t salt);
+
+
+/**
+ * Kick MHD to run now, to be called after MHD_resume_connection().
+ */
+void
+TM_trigger_daemon (void);