libyang 6.4.3
libyang is YANG data modelling language parser and toolkit written (and providing API) in C.
Loading...
Searching...
No Matches
utils.h
Go to the documentation of this file.
1
15#ifndef LY_UTILS_H_
16#define LY_UTILS_H_
17
18#include <stdint.h>
19#include <time.h>
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25struct ly_ctx;
26struct timespec;
27
39#define LY_LIST_FOR(START, ELEM) \
40 for ((ELEM) = (START); \
41 (ELEM); \
42 (ELEM) = (ELEM)->next)
43
53#define LY_LIST_FOR_SAFE(START, NEXT, ELEM) \
54 for ((ELEM) = (START); \
55 (ELEM) ? (NEXT = (ELEM)->next, 1) : 0; \
56 (ELEM) = (NEXT))
57
83#define LY_DATA_TYPE_COUNT 20
88extern const char *ly_data_type2str[LY_DATA_TYPE_COUNT];
89
103
117LIBYANG_API_DECL LY_ERR ly_pattern_match(const struct ly_ctx *ctx, const char *pattern, const char *string,
118 uint32_t str_len, void **pat_comp);
119
129LIBYANG_API_DECL LY_ERR ly_pattern_compile(const struct ly_ctx *ctx, const char *pattern, void **pat_comp);
130
136LIBYANG_API_DECL void ly_pattern_free(void *pat_comp);
137
143LIBYANG_API_DECL int ly_time_tz_offset(void);
144
151LIBYANG_API_DECL int ly_time_tz_offset_at(time_t time);
152
161LIBYANG_API_DECL LY_ERR ly_time_str2time(const char *value, time_t *time, char **fractions_s);
162
171LIBYANG_API_DECL LY_ERR ly_time_time2str(time_t time, const char *fractions_s, char **str);
172
180LIBYANG_API_DECL LY_ERR ly_time_str2ts(const char *value, struct timespec *ts);
181
189LIBYANG_API_DECL LY_ERR ly_time_ts2str(const struct timespec *ts, char **str);
190
191#ifdef __cplusplus
192}
193#endif
194
195#endif /* LY_UTILS_H_ */
libyang context handler.
LY_ERR
libyang's error codes returned by the libyang functions.
Definition log.h:252
LIBYANG_API_DECL LY_ERR ly_time_ts2str(const struct timespec *ts, char **str)
Convert timespec into date-and-time string value.
LIBYANG_API_DECL LY_ERR ly_time_str2time(const char *value, time_t *time, char **fractions_s)
Convert date-and-time from string to UNIX timestamp and fractions of a second.
LY_DATA_TYPE
YANG built-in types.
Definition utils.h:61
@ LY_TYPE_STRING
Definition utils.h:68
@ LY_TYPE_BITS
Definition utils.h:69
@ LY_TYPE_UNKNOWN
Definition utils.h:62
@ LY_TYPE_IDENT
Definition utils.h:74
@ LY_TYPE_UINT16
Definition utils.h:65
@ LY_TYPE_LEAFREF
Definition utils.h:76
@ LY_TYPE_INT16
Definition utils.h:79
@ LY_TYPE_UNION
Definition utils.h:77
@ LY_TYPE_BOOL
Definition utils.h:70
@ LY_TYPE_INT32
Definition utils.h:80
@ LY_TYPE_ENUM
Definition utils.h:73
@ LY_TYPE_INST
Definition utils.h:75
@ LY_TYPE_UINT8
Definition utils.h:64
@ LY_TYPE_BINARY
Definition utils.h:63
@ LY_TYPE_INT64
Definition utils.h:81
@ LY_TYPE_INT8
Definition utils.h:78
@ LY_TYPE_UINT64
Definition utils.h:67
@ LY_TYPE_DEC64
Definition utils.h:71
@ LY_TYPE_UINT32
Definition utils.h:66
@ LY_TYPE_EMPTY
Definition utils.h:72
LIBYANG_API_DECL int ly_time_tz_offset(void)
Get current timezone (including DST setting) UTC (GMT) time offset in seconds.
LIBYANG_API_DECL LY_ERR ly_time_str2ts(const char *value, struct timespec *ts)
Convert date-and-time from string to timespec.
const char * ly_data_type2str[20]
Stringfield YANG built-in data types.
#define LY_DATA_TYPE_COUNT
Definition utils.h:83
LIBYANG_API_DECL void ly_pattern_free(void *pat_comp)
Free a compiled XML Schema regex pattern.
LY_VALUE_FORMAT
All kinds of supported value formats and prefix mappings to modules.
Definition utils.h:93
@ LY_VALUE_JSON
Definition utils.h:98
@ LY_VALUE_SCHEMA
Definition utils.h:95
@ LY_VALUE_CBOR
Definition utils.h:99
@ LY_VALUE_CANON
Definition utils.h:94
@ LY_VALUE_XML
Definition utils.h:97
@ LY_VALUE_STR_NS
Definition utils.h:101
@ LY_VALUE_SCHEMA_RESOLVED
Definition utils.h:96
@ LY_VALUE_LYB
Definition utils.h:100
LIBYANG_API_DECL int ly_time_tz_offset_at(time_t time)
Get UTC (GMT) timezone offset in seconds at a specific timestamp (including DST setting).
LIBYANG_API_DECL LY_ERR ly_time_time2str(time_t time, const char *fractions_s, char **str)
Convert UNIX timestamp and fractions of a second into canonical date-and-time string value.
LIBYANG_API_DECL LY_ERR ly_pattern_match(const struct ly_ctx *ctx, const char *pattern, const char *string, uint32_t str_len, void **pat_comp)
Check a string matches an XML Schema regex used in YANG.
LIBYANG_API_DECL LY_ERR ly_pattern_compile(const struct ly_ctx *ctx, const char *pattern, void **pat_comp)
Compile an XML Schema regex pattern prior to matching.