#include "xroad_string.h"
#include <stdint.h>
#include <stdbool.h>
#include <cache/xroad_objects_types.h>
Go to the source code of this file.
|
uint32_t | xroad_conv_numdigits (int64_t val) |
|
uint32_t | xroad_conv_precision (xroad_double_t val) |
|
uint64_t | xroad_conv_lpow10 (uint32_t n) |
|
uint32_t | xroad_conv_i64toa (int64_t val, char *buf, uint32_t buf_len, char pad_sym) |
|
uint32_t | xroad_conv_u64toa (uint64_t val, char *buf, uint32_t buf_len, char pad_sym) |
|
uint32_t | xroad_conv_dtoa (double val, uint32_t prec, char *buf, uint32_t buf_len, char pad_sym, bool trim) |
|
uint32_t | xroad_conv_atou32 (xroad_str_t str, int32_t *cnt) |
|
int32_t | xroad_conv_atoi32 (xroad_str_t str, int32_t *cnt) |
|
uint64_t | xroad_conv_atou64 (xroad_str_t str, int32_t *cnt) |
|
int64_t | xroad_conv_atoi64 (xroad_str_t str, int32_t *cnt) |
|
double | xroad_conv_atod (xroad_str_t str, int32_t *cnt) |
|
◆ xroad_conv_dtosql
#define xroad_conv_dtosql |
( |
|
v, |
|
|
|
not_null |
|
) |
| |
Value:({ \
char* buf = "NULL"; \
uint32_t len = 4; \
double _v = (v); \
if (isnan(_v) || not_null) \
{ \
len = 64; \
buf = alloca(len); \
} \
xroad_str_len(buf, len); \
})
uint32_t xroad_conv_dtoa(double val, uint32_t prec, char *buf, uint32_t buf_len, char pad_sym, bool trim)
convert double to SQL representation string (e.g. NULL, '100')
- Parameters
-
[in] | v | - integer to convert |
[in] | not_null | - false - value interpreted as NULL |
- Returns
- SQL string
◆ xroad_conv_itoa
#define xroad_conv_itoa |
( |
|
v, |
|
|
|
... |
|
) |
| |
Value: _Generic((v), \
)(v, __VA_ARGS__)
uint32_t xroad_conv_u64toa(uint64_t val, char *buf, uint32_t buf_len, char pad_sym)
uint32_t xroad_conv_i64toa(int64_t val, char *buf, uint32_t buf_len, char pad_sym)
generic itoa, see xroad_conv_i(u)64toa
◆ xroad_conv_itosql
#define xroad_conv_itosql |
( |
|
v, |
|
|
|
not_null |
|
) |
| |
Value:({ \
char* buf = "NULL"; \
uint32_t len = 4; \
if (not_null) \
{ \
__typeof__ (v) _v = (v); \
buf = alloca(len); \
xroad_conv_itoa(_v, buf, len, 0); \
} \
xroad_str_len(buf, len); \
})
uint32_t xroad_conv_numdigits(int64_t val)
convert integer to SQL representation string (e.g. NULL, '100')
- Parameters
-
[in] | v | - integer to convert |
[in] | not_null | - false - value interpreted as NULL |
- Returns
- SQL string
◆ xroad_conv_atod()
double xroad_conv_atod |
( |
xroad_str_t |
str, |
|
|
int32_t * |
cnt |
|
) |
| |
convert string to double
- Parameters
-
[in] | str | - string value to convert |
[out] | cnt | - how many characters processed |
- Returns
- converted value
◆ xroad_conv_atoi32()
int32_t xroad_conv_atoi32 |
( |
xroad_str_t |
str, |
|
|
int32_t * |
cnt |
|
) |
| |
convert string to 32-bit number
- Parameters
-
[in] | str | - string value to convert |
[out] | cnt | - how many characters processed |
- Returns
- converted value
◆ xroad_conv_atoi64()
int64_t xroad_conv_atoi64 |
( |
xroad_str_t |
str, |
|
|
int32_t * |
cnt |
|
) |
| |
convert string to 64-bit number
- Parameters
-
[in] | str | - string value to convert |
[out] | cnt | - how many characters processed |
- Returns
- converted value
◆ xroad_conv_atou32()
uint32_t xroad_conv_atou32 |
( |
xroad_str_t |
str, |
|
|
int32_t * |
cnt |
|
) |
| |
convert string to 32-bit unsigned number
- Parameters
-
[in] | str | - string value to convert |
[out] | cnt | - how many characters processed |
- Returns
- converted value
◆ xroad_conv_atou64()
uint64_t xroad_conv_atou64 |
( |
xroad_str_t |
str, |
|
|
int32_t * |
cnt |
|
) |
| |
convert string to 64-bit unsigned number
- Parameters
-
[in] | str | - string value to convert |
[out] | cnt | - how many characters processed |
- Returns
- converted value
◆ xroad_conv_dtoa()
uint32_t xroad_conv_dtoa |
( |
double |
val, |
|
|
uint32_t |
prec, |
|
|
char * |
buf, |
|
|
uint32_t |
buf_len, |
|
|
char |
pad_sym, |
|
|
bool |
trim |
|
) |
| |
convert double to string
- Parameters
-
[in] | val | - converted value |
[in] | prec | - value precision |
[out] | buf | - bufer with converted value |
[in] | buf_len | - length of bufer |
[in] | pad_sym | - padding symbol |
[in] | trim | - trim zeroes from right |
- Returns
- how many characters written (can be written). If this value greater than buf_len, value converted incompletely
◆ xroad_conv_i64toa()
uint32_t xroad_conv_i64toa |
( |
int64_t |
val, |
|
|
char * |
buf, |
|
|
uint32_t |
buf_len, |
|
|
char |
pad_sym |
|
) |
| |
convert int64 value into string
- Parameters
-
[in] | val | - converted value |
[out] | buf | - bufer with converted value |
[in] | buf_len | - length of bufer |
[in] | pad_sym | - padding symbol |
- Returns
- how many characters written (can be written). If this value greater than buf_len, value converted incompletely
◆ xroad_conv_lpow10()
uint64_t xroad_conv_lpow10 |
( |
uint32_t |
n | ) |
|
◆ xroad_conv_numdigits()
uint32_t xroad_conv_numdigits |
( |
int64_t |
val | ) |
|
return number of digits. E.g. 10221 -> 5
- Parameters
-
- Returns
- number of digits
◆ xroad_conv_precision()
uint32_t xroad_conv_precision |
( |
xroad_double_t |
val | ) |
|
return number of digits after dot. E.g. 1.234 -> 3, 1 -> 0
- Parameters
-
- Returns
- number of digits
◆ xroad_conv_u64toa()
uint32_t xroad_conv_u64toa |
( |
uint64_t |
val, |
|
|
char * |
buf, |
|
|
uint32_t |
buf_len, |
|
|
char |
pad_sym |
|
) |
| |
convert uint64 value into string
- Parameters
-
[in] | val | - converted value |
[out] | buf | - bufer with converted value |
[in] | buf_len | - length of bufer |
[in] | pad_sym | - padding symbol |
- Returns
- how many characters written (can be written). If this value greater than buf_len, value converted incompletely