diff options
author | Christian Grothoff <christian@grothoff.org> | 2018-08-19 16:01:57 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2018-08-19 16:01:57 +0200 |
commit | 0df2028f96f5977739d4659bf253e0c6d9468326 (patch) | |
tree | 906222af6c332e219af4a5d112891d7212237de3 /src/exchange/taler-exchange-httpd_db.h | |
parent | ddca1f5c68e112928d715e1aee2758c40e14fb51 (diff) | |
download | exchange-0df2028f96f5977739d4659bf253e0c6d9468326.tar.gz exchange-0df2028f96f5977739d4659bf253e0c6d9468326.tar.bz2 exchange-0df2028f96f5977739d4659bf253e0c6d9468326.zip |
make transactions smaller to try to reduce rollbacks
Diffstat (limited to 'src/exchange/taler-exchange-httpd_db.h')
-rw-r--r-- | src/exchange/taler-exchange-httpd_db.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/exchange/taler-exchange-httpd_db.h b/src/exchange/taler-exchange-httpd_db.h index 2a42bcd85..091421bb4 100644 --- a/src/exchange/taler-exchange-httpd_db.h +++ b/src/exchange/taler-exchange-httpd_db.h @@ -24,6 +24,45 @@ #include <microhttpd.h> #include "taler_exchangedb_plugin.h" + +/** + * Type of closure for #TEH_DB_know_coin_transaction. + */ +struct TEH_DB_KnowCoinContext +{ + /** + * The coin to make sure it is known. + */ + const struct TALER_CoinPublicInfo *coin; + + /** + * MHD connection to queue errors with. + */ + struct MHD_Connection *connection; +}; + + +/** + * Execute database transaction to ensure coin is known. Run the transaction + * logic; IF it returns a non-error code, the transaction logic MUST + * NOT queue a MHD response. IF it returns an hard error, the + * transaction logic MUST queue a MHD response and set @a mhd_ret. IF + * it returns the soft error code, the function MAY be called again to + * retry and MUST not queue a MHD response. + * + * @param cls a `struct DepositContext` + * @param connection MHD request context + * @param session database session and transaction to use + * @param[out] mhd_ret set to MHD status on error + * @return transaction status + */ +enum GNUNET_DB_QueryStatus +TEH_DB_know_coin_transaction (void *cls, + struct MHD_Connection *connection, + struct TALER_EXCHANGEDB_Session *session, + int *mhd_ret); + + /** * Function implementing a database transaction. Runs the transaction * logic; IF it returns a non-error code, the transaction logic MUST |