myMPD
Internal API documentation
Loading...
Searching...
No Matches
json_query.h
Go to the documentation of this file.
1/*
2 SPDX-License-Identifier: GPL-3.0-or-later
3 myMPD (c) 2018-2025 Juergen Mang <mail@jcgames.de>
4 https://github.com/jcorporation/mympd
5*/
6
11#ifndef MYMPD_JSON_QUERY_H
12#define MYMPD_JSON_QUERY_H
13
14#include "dist/sds/sds.h"
15#include "src/lib/fields.h"
16#include "src/lib/list.h"
17#include "src/lib/validate.h"
18
19#include <stdbool.h>
20
25 sds message;
26 sds path;
27};
28
32typedef bool (*iterate_callback) (const char *, sds, sds, int, validate_callback, void *, struct t_json_parse_error *);
33
34void json_parse_error_init(struct t_json_parse_error *parse_error);
35void json_parse_error_clear(struct t_json_parse_error *parse_error);
36
37bool json_get_bool(sds s, const char *path, bool *result, struct t_json_parse_error *error);
38bool json_get_int_max(sds s, const char *path, int *result, struct t_json_parse_error *error);
39bool json_get_int(sds s, const char *path, int min, int max, int *result, struct t_json_parse_error *error);
40bool json_get_time_max(sds s, const char *path, time_t *result, struct t_json_parse_error *error);
41bool json_get_int64_max(sds s, const char *path, int64_t *result, struct t_json_parse_error *error);
42bool json_get_int64(sds s, const char *path, int64_t min, int64_t max, int64_t *result, struct t_json_parse_error *error);
43bool json_get_uint_max(sds s, const char *path, unsigned *result, struct t_json_parse_error *error);
44bool json_get_uint(sds s, const char *path, unsigned min, unsigned max, unsigned *result, struct t_json_parse_error *error);
45bool json_get_string_max(sds s, const char *path, sds *result, validate_callback vcb, struct t_json_parse_error *error);
46bool json_get_string(sds s, const char *path, size_t min, size_t max, sds *result, validate_callback vcb, struct t_json_parse_error *error);
47bool json_get_string_cmp(sds s, const char *path, size_t min, size_t max, const char *cmp, sds *result, struct t_json_parse_error *error);
48bool json_get_array_string(sds s, const char *path, struct t_list *l, validate_callback vcb, int max_elements, struct t_json_parse_error *error);
49bool json_get_array_int64(sds s, const char *path, struct t_list *l, int max_elements, struct t_json_parse_error *error);
50bool json_get_object_string(sds s, const char *path, struct t_list *l, validate_callback vcb_key,
51 validate_callback vcb_value, int max_elements, struct t_json_parse_error *error);
52bool json_iterate_object(sds s, const char *path, iterate_callback icb, void *icb_userdata,
53 validate_callback vcb_key, validate_callback vcb_value, int max_elements, struct t_json_parse_error *error);
54bool json_get_fields(sds s, const char *path, struct t_fields *tags, int max_elements, struct t_json_parse_error *error);
55bool json_get_tag_values(sds s, const char *path, struct mpd_song *song, validate_callback vcb, int max_elements, struct t_json_parse_error *error);
56
57bool json_find_key(sds s, const char *path);
58sds json_get_key_as_sds(sds s, const char *path);
59
60const char *get_mjson_toktype_name(int vtype);
61sds list_to_json_array(sds s, struct t_list *l);
62bool json_get_fields_as_string(sds s, sds *fields, struct t_json_parse_error *error);
63
64#endif
Fields handling.
bool json_get_uint_max(sds s, const char *path, unsigned *result, struct t_json_parse_error *error)
Definition json_query.c:217
bool json_get_object_string(sds s, const char *path, struct t_list *l, validate_callback vcb_key, validate_callback vcb_value, int max_elements, struct t_json_parse_error *error)
Definition json_query.c:589
const char * get_mjson_toktype_name(int vtype)
Definition json_query.c:642
bool json_get_int_max(sds s, const char *path, int *result, struct t_json_parse_error *error)
Definition json_query.c:105
void json_parse_error_clear(struct t_json_parse_error *parse_error)
Definition json_query.c:53
bool json_find_key(sds s, const char *path)
Definition json_query.c:615
bool json_get_array_int64(sds s, const char *path, struct t_list *l, int max_elements, struct t_json_parse_error *error)
Definition json_query.c:549
bool json_iterate_object(sds s, const char *path, iterate_callback icb, void *icb_userdata, validate_callback vcb_key, validate_callback vcb_value, int max_elements, struct t_json_parse_error *error)
Definition json_query.c:323
bool json_get_string(sds s, const char *path, size_t min, size_t max, sds *result, validate_callback vcb, struct t_json_parse_error *error)
Definition json_query.c:303
bool json_get_tag_values(sds s, const char *path, struct mpd_song *song, validate_callback vcb, int max_elements, struct t_json_parse_error *error)
Definition json_query.c:468
bool json_get_bool(sds s, const char *path, bool *result, struct t_json_parse_error *error)
Definition json_query.c:85
bool json_get_int(sds s, const char *path, int min, int max, int *result, struct t_json_parse_error *error)
Definition json_query.c:119
bool(* iterate_callback)(const char *, sds, sds, int, validate_callback, void *, struct t_json_parse_error *)
Definition json_query.h:32
bool json_get_fields_as_string(sds s, sds *fields, struct t_json_parse_error *error)
Definition json_query.c:66
bool json_get_array_string(sds s, const char *path, struct t_list *l, validate_callback vcb, int max_elements, struct t_json_parse_error *error)
Definition json_query.c:507
bool json_get_uint(sds s, const char *path, unsigned min, unsigned max, unsigned *result, struct t_json_parse_error *error)
Definition json_query.c:231
bool json_get_int64(sds s, const char *path, int64_t min, int64_t max, int64_t *result, struct t_json_parse_error *error)
Definition json_query.c:189
sds json_get_key_as_sds(sds s, const char *path)
Definition json_query.c:628
sds list_to_json_array(sds s, struct t_list *l)
Definition json_print.c:223
bool json_get_string_max(sds s, const char *path, sds *result, validate_callback vcb, struct t_json_parse_error *error)
Definition json_query.c:261
bool json_get_string_cmp(sds s, const char *path, size_t min, size_t max, const char *cmp, sds *result, struct t_json_parse_error *error)
Definition json_query.c:280
bool json_get_time_max(sds s, const char *path, time_t *result, struct t_json_parse_error *error)
Definition json_query.c:149
bool json_get_int64_max(sds s, const char *path, int64_t *result, struct t_json_parse_error *error)
Definition json_query.c:175
bool json_get_fields(sds s, const char *path, struct t_fields *tags, int max_elements, struct t_json_parse_error *error)
Definition json_query.c:605
void json_parse_error_init(struct t_json_parse_error *parse_error)
Definition json_query.c:44
Linked list implementation.
Definition fields.h:37
Definition json_query.h:24
sds message
the error message
Definition json_query.h:25
sds path
the json path of the invalid value
Definition json_query.h:26
Definition list.h:32
String validation functions.
bool(* validate_callback)(sds)
Definition validate.h:21