denom->amount

This commit is contained in:
Florian Dold 2020-01-19 22:01:20 +01:00
parent a4cfbf3471
commit 12468e1fd8
No known key found for this signature in database
GPG Key ID: D2E4F00F29D02A4B
2 changed files with 28 additions and 26 deletions

View File

@ -113,42 +113,43 @@ struct TALER_Amount
/**
* Parse denomination description, in the format "T:V.F".
* Parse monetary amount, in the format "T:V.F".
*
* @param str denomination description
* @param[out] denom denomination to write the result to
* @return #GNUNET_OK if the string is a valid denomination specification,
* @param str amount string
* @param[out] amount amount to write the result to
* @return #GNUNET_OK if the string is a valid monetary amount specification,
* #GNUNET_SYSERR if it is invalid.
*/
int
TALER_string_to_amount (const char *str,
struct TALER_Amount *denom);
struct TALER_Amount *amount);
/**
* Parse denomination description, in the format "T:V.F".
* Parse monetary amount, in the format "T:V.F".
* The result is stored in network byte order (NBO).
*
* @param str denomination description
* @param[out] denom denomination to write the result to, in NBO
* @return #GNUNET_OK if the string is a valid denomination specification,
* @param str amount string
* @param[out] amount_nbo amount to write the result to
* @return #GNUNET_OK if the string is a valid amount specification,
* #GNUNET_SYSERR if it is invalid.
*/
int
TALER_string_to_amount_nbo (const char *str,
struct TALER_AmountNBO *denom);
struct TALER_AmountNBO *amount_nbo);
/**
* Get the value of "zero" in a particular currency.
*
* @param cur currency description
* @param[out] denom denomination to write the result to
* @param[out] amount amount to write the result to
* @return #GNUNET_OK if @a cur is a valid currency specification,
* #GNUNET_SYSERR if it is invalid.
*/
int
TALER_amount_get_zero (const char *cur,
struct TALER_Amount *denom);
struct TALER_Amount *amount);
/**

View File

@ -45,11 +45,11 @@ invalidate (struct TALER_Amount *a)
/**
* Parse money amount description, in the format "A:B.C".
* Parse monetary amount, in the format "T:V.F".
*
* @param str amount description
* @param[out] denom amount to write the result to
* @return #GNUNET_OK if the string is a valid amount specification,
* @param str amount string
* @param[out] amount amount to write the result to
* @return #GNUNET_OK if the string is a valid monetary amount specification,
* #GNUNET_SYSERR if it is invalid.
*/
int
@ -181,16 +181,17 @@ TALER_string_to_amount (const char *str,
/**
* Parse denomination description, in the format "T:V.F".
* Parse monetary amount, in the format "T:V.F".
* The result is stored in network byte order (NBO).
*
* @param str denomination description
* @param[out] denom denomination to write the result to, in NBO
* @return #GNUNET_OK if the string is a valid denomination specification,
* @param str amount string
* @param[out] amount_nbo amount to write the result to
* @return #GNUNET_OK if the string is a valid amount specification,
* #GNUNET_SYSERR if it is invalid.
*/
int
TALER_string_to_amount_nbo (const char *str,
struct TALER_AmountNBO *denom)
struct TALER_AmountNBO *amount_nbo)
{
struct TALER_Amount amount;
@ -198,7 +199,7 @@ TALER_string_to_amount_nbo (const char *str,
TALER_string_to_amount (str,
&amount))
return GNUNET_SYSERR;
TALER_amount_hton (denom,
TALER_amount_hton (amount_nbo,
&amount);
return GNUNET_OK;
}
@ -248,23 +249,23 @@ TALER_amount_ntoh (struct TALER_Amount *res,
* Get the value of "zero" in a particular currency.
*
* @param cur currency description
* @param[out] denom denomination to write the result to
* @param[out] amount amount to write the result to
* @return #GNUNET_OK if @a cur is a valid currency specification,
* #GNUNET_SYSERR if it is invalid.
*/
int
TALER_amount_get_zero (const char *cur,
struct TALER_Amount *denom)
struct TALER_Amount *amount)
{
size_t slen;
slen = strlen (cur);
if (slen >= TALER_CURRENCY_LEN)
return GNUNET_SYSERR;
memset (denom,
memset (amount,
0,
sizeof (struct TALER_Amount));
memcpy (denom->currency,
memcpy (amount->currency,
cur,
slen);
return GNUNET_OK;