Go to the documentation of this file.
30 #if defined(__cplusplus)
68 #define MAMA_PRICE_HINTS_NONE ((mamaPriceHints)0x00)
70 #define MAMA_PRICE_MAX_STR_LEN (32)
76 #define MAMA_PRICE_EPSILON ((mama_f64_t)0.00000000001)
369 #if defined(__cplusplus)
MAMAExpDLL mama_status mamaPrice_getWithHints(const mamaPrice price, double *value, mamaPricePrecision *precision)
Get the price with special, optional hints.
@ MAMA_PRICE_PREC_CENTS
Definition: price.h:63
MAMAExpDLL mama_i32_t mamaPrice_precision2Denom(mamaPricePrecision precision)
Return the fractional denominator for a given precision code.
MAMAExpDLL int mamaPrice_equal(const mamaPrice lhs, const mamaPrice rhs)
Check for equality between two price objects.
MAMAExpDLL double mamaPrice_compare(const mamaPrice lhs, const mamaPrice rhs)
Compare two price objects.
MAMAExpDLL mama_status mamaPrice_getHints(const mamaPrice price, mamaPriceHints *hints)
Get the price hints.
@ MAMA_PRICE_PREC_DIV_4
Definition: price.h:50
@ MAMA_PRICE_PREC_DIV_128
Definition: price.h:55
uint8_t mama_u8_t
Definition: types.h:35
mama_status
Definition: status.h:37
@ MAMA_PRICE_PREC_UNKNOWN
Definition: price.h:37
mama_u8_t mamaPriceHints
Definition: price.h:67
@ MAMA_PRICE_PREC_INT
Definition: price.h:48
@ MAMA_PRICE_PREC_TICK_64
Definition: price.h:61
MAMAExpDLL mama_status mamaPrice_subtract(mamaPrice dest, const mamaPrice rhs)
Subtract from a price object.
void * mamaPrice
Flexible price format (contains display hints as well as value)
Definition: types.h:89
@ MAMA_PRICE_PREC_DIV_16
Definition: price.h:52
@ MAMA_PRICE_PREC_100000
Definition: price.h:42
@ MAMA_PRICE_PREC_10000
Definition: price.h:41
@ MAMA_PRICE_PREC_10000000
Definition: price.h:44
@ MAMA_PRICE_PREC_DIV_8
Definition: price.h:51
MAMAExpDLL mama_status mamaPrice_setHints(mamaPrice price, mamaPriceHints hints)
Set all of the price hints.
MAMAExpDLL mama_status mamaPrice_setWithHints(mamaPrice price, double value, mamaPriceHints hints)
Set the price with hint information.
@ MAMA_PRICE_PREC_100
Definition: price.h:39
int32_t mama_i32_t
Definition: types.h:38
@ MAMA_PRICE_PREC_QUARTER_32
Definition: price.h:60
MAMAExpDLL mama_status mamaPrice_destroy(mamaPrice price)
Destroy a mamaPrice object.
MAMAExpDLL mama_i32_t mamaPrice_precision2Decimals(mamaPricePrecision precision)
Return the number of decimal places for a given precision code.
MAMAExpDLL mama_status mamaPrice_copy(mamaPrice dest, const mamaPrice src)
Copy a price object.
@ MAMA_PRICE_PREC_1000
Definition: price.h:40
@ MAMA_PRICE_PREC_DIV_256
Definition: price.h:56
@ MAMA_PRICE_PREC_TICK_32
Definition: price.h:58
MAMAExpDLL mama_status mamaPrice_setValue(mamaPrice price, double value)
Set the price value only (no hint information).
@ MAMA_PRICE_PREC_DIV_512
Definition: price.h:57
MAMAExpDLL mama_status mamaPrice_getIsValidPrice(const mamaPrice price, mama_bool_t *valid)
Check if price contains a valid value.
@ MAMA_PRICE_PREC_DIV_32
Definition: price.h:53
@ MAMA_PRICE_PREC_1000000000
Definition: price.h:46
MAMAExpDLL mamaPricePrecision mamaPrice_denom2Precision(mama_i32_t denominator)
Return the appropriate precision code for a given fractional denominator.
MAMAExpDLL mama_status mamaPrice_getPrecision(const mamaPrice price, mamaPricePrecision *precision)
Get the price precision.
@ MAMA_PRICE_PREC_10000000000
Definition: price.h:47
@ MAMA_PRICE_PREC_DIV_2
Definition: price.h:49
size_t mama_size_t
Definition: types.h:47
@ MAMA_PRICE_PREC_100000000
Definition: price.h:45
MAMAExpDLL mama_status mamaPrice_setIsValidPrice(mamaPrice price, mama_bool_t valid)
Set if price contains a valid value.
MAMAExpDLL mamaPricePrecision mamaPrice_decimals2Precision(mama_i32_t places)
Return the appropriate precision code for a given number of decimal places.
MAMAExpDLL mama_status mamaPrice_negate(mamaPrice price)
Negate the price value.
@ MAMA_PRICE_PREC_PENNIES
Definition: price.h:64
MAMAExpDLL mama_status mamaPrice_create(mamaPrice *price)
Create a mamaPrice object.
MAMAExpDLL mama_status mamaPrice_getAsString(const mamaPrice price, char *str, mama_size_t maxLen)
Get the price as a string, formatted according to the hints provided.
MAMAExpDLL mama_status mamaPrice_setPrecision(mamaPrice price, mamaPricePrecision precision)
Set the price precision.
@ MAMA_PRICE_PREC_HALF_32
Definition: price.h:59
MAMAExpDLL mama_status mamaPrice_add(mamaPrice dest, const mamaPrice rhs)
Add to a price object.
@ MAMA_PRICE_PREC_DIV_64
Definition: price.h:54
@ MAMA_PRICE_PREC_10
Definition: price.h:38
MAMAExpDLL mama_status mamaPrice_clear(mamaPrice price)
Clear a mamaPrice object.
enum mamaPricePrecision_ mamaPricePrecision
@ MAMA_PRICE_PREC_HALF_64
Definition: price.h:62
int8_t mama_bool_t
Definition: types.h:42
MAMAExpDLL mama_status mamaPrice_isZero(const mamaPrice price, mama_bool_t *result)
Return whether the price has a value equivalent to zero.
MAMAExpDLL mama_status mamaPrice_setFromString(mamaPrice price, const char *str)
Set the price from a string representation, preserving any detectable hints.
mamaPricePrecision_
Definition: price.h:35
@ MAMA_PRICE_PREC_1000000
Definition: price.h:43
MAMAExpDLL mama_status mamaPrice_getValue(const mamaPrice price, double *value)
Get the price value only.
MAMAExpDLL mama_status mamaPrice_getRoundedValue(const mamaPrice price, const mamaPricePrecision precision, double *value)
This function obtains the double value of a price rounded to the supplied precision.