From a4773ac3909239fa9cb8e2f71913c186b4edc745 Mon Sep 17 00:00:00 2001 From: Fournier Nicolas Date: Mon, 22 Jun 2015 14:46:19 +0200 Subject: Added suport for testing more database operations --- src/mintdb/perf_taler_mintdb_interpreter.h | 155 ++++++++++++++++++++++++----- 1 file changed, 131 insertions(+), 24 deletions(-) (limited to 'src/mintdb/perf_taler_mintdb_interpreter.h') diff --git a/src/mintdb/perf_taler_mintdb_interpreter.h b/src/mintdb/perf_taler_mintdb_interpreter.h index 367aaf295..798660313 100644 --- a/src/mintdb/perf_taler_mintdb_interpreter.h +++ b/src/mintdb/perf_taler_mintdb_interpreter.h @@ -118,6 +118,37 @@ .exposed_type = PERF_TALER_MINTDB_NONE, \ } +/** + * Extracts @a _nb_saved items of type @a _save_type + * from the command @a _label_save during the loop @a _label_loop + */ +#define PERF_TALER_MINTDB_INIT_CMD_SAVE_ARRAY(_label, _label_loop, _label_save, _nb_saved, _save_type) \ +{ \ + .command = PERF_TALER_MINTDB_CMD_SAVE_ARRAY, \ + .label = _label, \ + .exposed_type = PERF_TALER_MINTDB_NONE, \ + .details.save_array = { \ + .label_loop = _label_loop, \ + .label_save = _label_save, \ + .nb_saved = _nb_saved, \ + .type_saved = _save_type \ + } \ +} + +/** + * Loads @a _nb_saved previously sampled data of type @a _saved_type + * from @a _label_save during the loop @a _label_loop + */ +#define PERF_TALER_MINTDB_INIT_CMD_LOAD_ARRAY(_label, _label_loop, _label_save) \ +{ \ + .command = PERF_TALER_MINTDB_CMD_LOAD_ARRAY, \ + .label = _label, \ + .exposed_type = PERF_TALER_MINTDB_NONE, \ + .details.load_array = { \ + .label_loop = _label_loop, \ + .label_save = _label_save \ + } \ +} /** * Insert a deposit into the database */ @@ -141,37 +172,71 @@ } /** - * Extracts @a _nb_saved items of type @a _save_type - * from the command @a _label_save during the loop @a _label_loop + * Creates a new reserve in the database */ -#define PERF_TALER_MINTDB_INIT_CMD_SAVE_ARRAY(_label, _label_loop, _label_save, _nb_saved, _save_type) \ +#define PERF_TALER_MINTDB_INIT_CMD_INSERT_RESERVE(_label) \ { \ - .command = PERF_TALER_MINTDB_CMD_SAVE_ARRAY, \ + .command = PERF_TALER_MINTDB_CMD_INSERT_RESERVE \ + .label = _label \ + .exposed_type = PERF_TALER_MINTDB_RESERVE \ +} + + +/** + * Polls the database for a secific reserve's details + * @param _label_source Source for the reserve to poll + */ +#define PERF_TALER_MINTDB_INIT_CMD_GET_RESERVE(_label, _label_source) \ +{ \ + .command = PERF_TALER_MINTDB_CMD_GET_RESERVE \ .label = _label, \ .exposed_type = PERF_TALER_MINTDB_NONE, \ - .details.save_array = { \ - .label_loop = _label_loop, \ - .label_save = _label_save, \ - .nb_saved = _nb_saved, \ - .type_saved = _save_type \ - } \ + .details.get_reserve.label_source = _label_source \ } + /** - * Loads @a _nb_saved previously sampled data of type @a _saved_type - * from @a _label_save during the loop @a _label_loop + * Inserts informations about a withdrawal in the database */ -#define PERF_TALER_MINTDB_INIT_CMD_LOAD_ARRAY(_label, _label_loop, _label_save) \ +#define PERF_TALER_MINTDB_INIT_CMD_INSERT_WITHDRAW(_label) \ { \ - .command = PERF_TALER_MINTDB_CMD_LOAD_ARRAY, \ + .command = PERF_TALER_MINTDB_CMD_INSERT_WITHDRAW, \ + .label = _label, \ + .exposed_type = PERF_TALER_MINTDB_BLINDCOIN, \ +}\ + + +/** + * Polls the database about informations regarding a secific withdrawal + */ +#define PERF_TALER_MINTDB_INIT_CMD_GET_WITHDRAW(_label, _label_source) \ +{ \ + .command = PERF_TALER_MINTDB_CMD_GET_WITHDRAW, \ .label = _label, \ .exposed_type = PERF_TALER_MINTDB_NONE, \ - .details.load_array = { \ - .label_loop = _label_loop, \ - .label_save = _label_save \ - } \ + .details.get_withdraw.label_source = _label_source, \ } +/** + * Inserts informations about a denomination key in the database + */ +#define PERF_TALER_MINTDB_INIT_CMD_INSERT_DENOMINATION(_label) \ +{ \ + .command = PERF_TALER_MINTDB_CMD_INSERT_WITHDRAW, \ + .label = _label, \ + .exposed_type = PERF_TALER_MINTDB_DENOMINATION_KEY, \ +} + +/** + * Polls the database about informations regarding a specific denomination key + */ +#define PERF_TALER_MINTDB_INIT_CMD_GET_DENOMINATION(_label, _label_source) \ +{ \ + .command = PERF_TALER_MINTDB_CMD_GET_DENOMINATION, \ + .label = _label, \ + .exposed_type = PERF_TALER_MINTDB_NONE, \ + .details.get_denomination.label_source = _label_source, \ +} /** @@ -184,7 +249,9 @@ enum PERF_TALER_MINTDB_Type PERF_TALER_MINTDB_TIME, PERF_TALER_MINTDB_DEPOSIT, PERF_TALER_MINTDB_BLINDCOIN, + PERF_TALER_MINTDB_RESERVE_KEY, PERF_TALER_MINTDB_RESERVE, + PERF_TALER_MINTDB_DENOMINATION_KEY, PERF_TALER_MINTDB_DENOMINATION_INFO, PERF_TALER_MINTDB_COIN_INFO, }; @@ -195,10 +262,11 @@ enum PERF_TALER_MINTDB_Type */ union PERF_TALER_MINTDB_Data { - struct TALER_MINTDB_Deposit *deposit; struct timespec time; + struct TALER_MINTDB_Deposit *deposit; struct TALER_MINTDB_CollectableBlindcoin *blindcoin; struct TALER_MINTDB_Reserve *reserve; + struct TALER_DenominationPublicKey *dpk; struct TALER_MINTDB_DenominationKeyIssueInformation *dki; struct TALER_CoinPublicInfo *cpi; }; @@ -239,19 +307,36 @@ enum PERF_TALER_MINTDB_CMD_Name // Abort a transaction PERF_TALER_MINTDB_CMD_ABORT_TRANSACTION, + // Saves random deposits from a loop + PERF_TALER_MINTDB_CMD_SAVE_ARRAY, + + // Load deposits saved earlier + PERF_TALER_MINTDB_CMD_LOAD_ARRAY, + // Insert a deposit into the database PERF_TALER_MINTDB_CMD_INSERT_DEPOSIT, // Check if a deposit is in the database PERF_TALER_MINTDB_CMD_GET_DEPOSIT, - // Saves random deposits from a loop - PERF_TALER_MINTDB_CMD_SAVE_ARRAY, + // Insert currency in a reserve / Create a reserve + PERF_TALER_MINTDB_CMD_INSERT_RESERVE, - // Load deposits saved earlier - PERF_TALER_MINTDB_CMD_LOAD_ARRAY, + // Get Informations about a reserve + PERF_TALER_MINTDB_CMD_GET_RESERVE, + + // Insert informations about a withdrawal in the database + PERF_TALER_MINTDB_CMD_INSERT_WITHDRAW, -} command; + // Pulls informations about a withdrawal from the database + PERF_TALER_MINTDB_CMD_GET_WITHDRAW, + + // Insert informations about a denomination key in the database + PERF_TALER_MINTDB_CMD_INSERT_DENOMINATION, + + // polls the database for informations about a specific denomination key + PERF_TALER_MINTDB_CMD_GET_DENOMINATION +}; /** @@ -365,6 +450,26 @@ struct PERF_TALER_MINTDB_CMD_get_deposit_details }; +/** + * Extra data requiered for the GET_DEPOSIT command + */ +struct PERF_TALER_MINTDB_CMD_get_reserve_details +{ + /** + * The label of the source of the reserve to check + */ + const char *label_source; +}; + + +struct PERF_TALER_MINTDB_CMD_get_denomination_details +{ + /** + * The label of the source of the denomination to check + */ + const char *label_source; +}; + /** * Contains extra data required for any command */ @@ -376,6 +481,8 @@ union PERF_TALER_MINTDB_CMD_Details struct PERF_TALER_MINTDB_CMD_save_array_details save_array; struct PERF_TALER_MINTDB_CMD_load_array_details load_array; struct PERF_TALER_MINTDB_CMD_get_deposit_details get_deposit; + struct PERF_TALER_MINTDB_CMD_get_reserve_details get_reserve; + struct PERF_TALER_MINTDB_CMD_get_denomination_details get_denomination; }; -- cgit v1.2.3