libyang
6.4.13
libyang is YANG data modelling language parser and toolkit written (and providing API) in C.
Toggle main menu visibility
Loading...
Searching...
No Matches
utils.h
Go to the documentation of this file.
1
14
15
#ifndef LY_UTILS_H_
16
#define LY_UTILS_H_
17
18
#include <stdint.h>
19
#include <time.h>
20
21
#ifdef __cplusplus
22
extern
"C"
{
23
#endif
24
25
struct
ly_ctx
;
26
struct
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
61
typedef
enum
{
62
LY_TYPE_UNKNOWN
= 0,
63
LY_TYPE_BINARY
,
64
LY_TYPE_UINT8
,
65
LY_TYPE_UINT16
,
66
LY_TYPE_UINT32
,
67
LY_TYPE_UINT64
,
68
LY_TYPE_STRING
,
69
LY_TYPE_BITS
,
70
LY_TYPE_BOOL
,
71
LY_TYPE_DEC64
,
72
LY_TYPE_EMPTY
,
73
LY_TYPE_ENUM
,
74
LY_TYPE_IDENT
,
75
LY_TYPE_INST
,
76
LY_TYPE_LEAFREF
,
77
LY_TYPE_UNION
,
78
LY_TYPE_INT8
,
79
LY_TYPE_INT16
,
80
LY_TYPE_INT32
,
81
LY_TYPE_INT64
82
}
LY_DATA_TYPE
;
83
#define LY_DATA_TYPE_COUNT 20
84
88
extern
const
char
*
ly_data_type2str
[
LY_DATA_TYPE_COUNT
];
89
93
typedef
enum
{
94
LY_VALUE_CANON
,
95
LY_VALUE_SCHEMA
,
96
LY_VALUE_SCHEMA_RESOLVED
,
97
LY_VALUE_XML
,
98
LY_VALUE_JSON
,
99
LY_VALUE_CBOR
,
100
LY_VALUE_LYB
,
101
LY_VALUE_STR_NS
102
}
LY_VALUE_FORMAT
;
103
117
LIBYANG_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
129
LIBYANG_API_DECL
LY_ERR
ly_pattern_compile
(
const
struct
ly_ctx
*ctx,
const
char
*pattern,
void
**pat_comp);
130
136
LIBYANG_API_DECL
void
ly_pattern_free
(
void
*pat_comp);
137
143
LIBYANG_API_DECL
int
ly_time_tz_offset
(
void
);
144
151
LIBYANG_API_DECL
int
ly_time_tz_offset_at
(time_t time);
152
161
LIBYANG_API_DECL
LY_ERR
ly_time_str2time
(
const
char
*value, time_t *time,
char
**fractions_s);
162
171
LIBYANG_API_DECL
LY_ERR
ly_time_time2str
(time_t time,
const
char
*fractions_s,
char
**str);
172
180
LIBYANG_API_DECL
LY_ERR
ly_time_str2ts
(
const
char
*value,
struct
timespec *ts);
181
189
LIBYANG_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_ */
ly_ctx
libyang context handler.
LY_ERR
LY_ERR
libyang's error codes returned by the libyang functions.
Definition
log.h:252
ly_time_ts2str
LIBYANG_API_DECL LY_ERR ly_time_ts2str(const struct timespec *ts, char **str)
Convert timespec into date-and-time string value.
ly_time_str2time
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
LY_DATA_TYPE
YANG built-in types.
Definition
utils.h:61
LY_TYPE_STRING
@ LY_TYPE_STRING
Definition
utils.h:68
LY_TYPE_BITS
@ LY_TYPE_BITS
Definition
utils.h:69
LY_TYPE_UNKNOWN
@ LY_TYPE_UNKNOWN
Definition
utils.h:62
LY_TYPE_IDENT
@ LY_TYPE_IDENT
Definition
utils.h:74
LY_TYPE_UINT16
@ LY_TYPE_UINT16
Definition
utils.h:65
LY_TYPE_LEAFREF
@ LY_TYPE_LEAFREF
Definition
utils.h:76
LY_TYPE_INT16
@ LY_TYPE_INT16
Definition
utils.h:79
LY_TYPE_UNION
@ LY_TYPE_UNION
Definition
utils.h:77
LY_TYPE_BOOL
@ LY_TYPE_BOOL
Definition
utils.h:70
LY_TYPE_INT32
@ LY_TYPE_INT32
Definition
utils.h:80
LY_TYPE_ENUM
@ LY_TYPE_ENUM
Definition
utils.h:73
LY_TYPE_INST
@ LY_TYPE_INST
Definition
utils.h:75
LY_TYPE_UINT8
@ LY_TYPE_UINT8
Definition
utils.h:64
LY_TYPE_BINARY
@ LY_TYPE_BINARY
Definition
utils.h:63
LY_TYPE_INT64
@ LY_TYPE_INT64
Definition
utils.h:81
LY_TYPE_INT8
@ LY_TYPE_INT8
Definition
utils.h:78
LY_TYPE_UINT64
@ LY_TYPE_UINT64
Definition
utils.h:67
LY_TYPE_DEC64
@ LY_TYPE_DEC64
Definition
utils.h:71
LY_TYPE_UINT32
@ LY_TYPE_UINT32
Definition
utils.h:66
LY_TYPE_EMPTY
@ LY_TYPE_EMPTY
Definition
utils.h:72
ly_time_tz_offset
LIBYANG_API_DECL int ly_time_tz_offset(void)
Get current timezone (including DST setting) UTC (GMT) time offset in seconds.
ly_time_str2ts
LIBYANG_API_DECL LY_ERR ly_time_str2ts(const char *value, struct timespec *ts)
Convert date-and-time from string to timespec.
ly_data_type2str
const char * ly_data_type2str[20]
Stringfield YANG built-in data types.
LY_DATA_TYPE_COUNT
#define LY_DATA_TYPE_COUNT
Definition
utils.h:83
ly_pattern_free
LIBYANG_API_DECL void ly_pattern_free(void *pat_comp)
Free a compiled XML Schema regex pattern.
LY_VALUE_FORMAT
LY_VALUE_FORMAT
All kinds of supported value formats and prefix mappings to modules.
Definition
utils.h:93
LY_VALUE_JSON
@ LY_VALUE_JSON
Definition
utils.h:98
LY_VALUE_SCHEMA
@ LY_VALUE_SCHEMA
Definition
utils.h:95
LY_VALUE_CBOR
@ LY_VALUE_CBOR
Definition
utils.h:99
LY_VALUE_CANON
@ LY_VALUE_CANON
Definition
utils.h:94
LY_VALUE_XML
@ LY_VALUE_XML
Definition
utils.h:97
LY_VALUE_STR_NS
@ LY_VALUE_STR_NS
Definition
utils.h:101
LY_VALUE_SCHEMA_RESOLVED
@ LY_VALUE_SCHEMA_RESOLVED
Definition
utils.h:96
LY_VALUE_LYB
@ LY_VALUE_LYB
Definition
utils.h:100
ly_time_tz_offset_at
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).
ly_time_time2str
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.
ly_pattern_match
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.
ly_pattern_compile
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.
src
utils.h
Privacy Policy
Generated on
for libyang by
1.17.0