exchange

Base system with REST service to issue digital coins, run by the payment service provider
Log | Files | Refs | Submodules | README | LICENSE

commit 5c01da52b1309607311b0b2e608e5de3a77b7ffe
parent b1e0dd8b7ec7af8e478d67ef49c60bd2d0774864
Author: Christian Grothoff <christian@grothoff.org>
Date:   Fri, 12 Jun 2015 21:29:17 +0200

introduce pq functions form abs time in NBO

Diffstat:
Msrc/include/taler_pq_lib.h | 22++++++++++++++++++++++
Msrc/mintdb/plugin_mintdb_postgres.c | 24++++++++++++------------
Msrc/pq/pq_helper.c | 32++++++++++++++++++++++++++++++++
3 files changed, 66 insertions(+), 12 deletions(-)

diff --git a/src/include/taler_pq_lib.h b/src/include/taler_pq_lib.h @@ -202,6 +202,16 @@ TALER_PQ_query_param_absolute_time(const struct GNUNET_TIME_Absolute *x); /** + * Generate query parameter for an absolute time value. + * The database must store a 64-bit integer. + * + * @param x pointer to the query parameter to pass + */ +struct TALER_PQ_QueryParam +TALER_PQ_query_param_absolute_time_nbo(const struct GNUNET_TIME_AbsoluteNBO *x); + + +/** * Generate query parameter for an uint16_t in host byte order. * * @param x pointer to the query parameter to pass @@ -453,6 +463,18 @@ TALER_PQ_result_spec_absolute_time (const char *name, /** + * Absolute time expected. + * + * @param name name of the field in the table + * @param[out] at where to store the result + * @return array entry for the result specification to use + */ +struct TALER_PQ_ResultSpec +TALER_PQ_result_spec_absolute_time_nbo (const char *name, + struct GNUNET_TIME_AbsoluteNBO *at); + + +/** * uint16_t expected. * * @param name name of the field in the table diff --git a/src/mintdb/plugin_mintdb_postgres.c b/src/mintdb/plugin_mintdb_postgres.c @@ -1057,10 +1057,10 @@ postgres_insert_denomination_info (void *cls, TALER_PQ_query_param_rsa_public_key (denom_pub->rsa_public_key), TALER_PQ_query_param_auto_from_type (&issue->master), TALER_PQ_query_param_auto_from_type (&issue->signature), - TALER_PQ_query_param_auto_from_type (&issue->start.abs_value_us__), - TALER_PQ_query_param_auto_from_type (&issue->expire_withdraw.abs_value_us__), - TALER_PQ_query_param_auto_from_type (&issue->expire_spend.abs_value_us__), - TALER_PQ_query_param_auto_from_type (&issue->expire_legal.abs_value_us__), + TALER_PQ_query_param_absolute_time_nbo (&issue->start), + TALER_PQ_query_param_absolute_time_nbo (&issue->expire_withdraw), + TALER_PQ_query_param_absolute_time_nbo (&issue->expire_spend), + TALER_PQ_query_param_absolute_time_nbo (&issue->expire_legal), TALER_PQ_query_param_amount_nbo (&issue->value), TALER_PQ_query_param_amount_nbo (&issue->fee_withdraw), TALER_PQ_query_param_amount_nbo (&issue->fee_deposit), @@ -1147,14 +1147,14 @@ postgres_get_denomination_info (void *cls, &issue->master), TALER_PQ_result_spec_auto_from_type ("master_sig", &issue->signature), - TALER_PQ_result_spec_auto_from_type ("valid_from", - &issue->start.abs_value_us__), - TALER_PQ_result_spec_auto_from_type ("expire_withdraw", - &issue->expire_withdraw.abs_value_us__), - TALER_PQ_result_spec_auto_from_type ("expire_spend", - &issue->expire_spend.abs_value_us__), - TALER_PQ_result_spec_auto_from_type ("expire_legal", - &issue->expire_legal.abs_value_us__), + TALER_PQ_result_spec_absolute_time_nbo ("valid_from", + &issue->start), + TALER_PQ_result_spec_absolute_time_nbo ("expire_withdraw", + &issue->expire_withdraw), + TALER_PQ_result_spec_absolute_time_nbo ("expire_spend", + &issue->expire_spend), + TALER_PQ_result_spec_absolute_time_nbo ("expire_legal", + &issue->expire_legal), TALER_PQ_result_spec_amount_nbo ("coin", &issue->value), TALER_PQ_result_spec_amount_nbo ("fee_withdraw", diff --git a/src/pq/pq_helper.c b/src/pq/pq_helper.c @@ -108,6 +108,21 @@ TALER_PQ_query_param_absolute_time (const struct GNUNET_TIME_Absolute *x) /** + * Generate query parameter for an absolute time value. + * The database must store a 64-bit integer. + * + * @param x pointer to the query parameter to pass + */ +struct TALER_PQ_QueryParam +TALER_PQ_query_param_absolute_time_nbo(const struct GNUNET_TIME_AbsoluteNBO *x) +{ + struct TALER_PQ_QueryParam res = + TALER_PQ_query_param_auto_from_type (&x->abs_value_us__); + return res; +} + + +/** * Generate query parameter for an uint16_t in host byte order. * * @param x pointer to the query parameter to pass @@ -269,6 +284,23 @@ TALER_PQ_result_spec_absolute_time (const char *name, /** + * Absolute time expected. + * + * @param name name of the field in the table + * @param[out] at where to store the result + * @return array entry for the result specification to use + */ +struct TALER_PQ_ResultSpec +TALER_PQ_result_spec_absolute_time_nbo (const char *name, + struct GNUNET_TIME_AbsoluteNBO *at) +{ + struct TALER_PQ_ResultSpec res = + TALER_PQ_result_spec_auto_from_type(name, &at->abs_value_us__); + return res; +} + + +/** * uint16_t expected. * * @param name name of the field in the table