78#define GVM_JSON_PULL_PARSE_BUFFER_LIMIT 10485760
80#define GVM_JSON_PULL_READ_BUFFER_SIZE 4096
cJSON * gvm_json_pull_expand_container(gvm_json_pull_parser_t *, gchar **)
Expands the current array or object of a JSON pull parser.
void gvm_json_pull_parser_next(gvm_json_pull_parser_t *, gvm_json_pull_event_t *)
Get the next event from a JSON pull parser.
void gvm_json_pull_path_elem_free(gvm_json_path_elem_t *)
Frees a JSON path element.
void gvm_json_pull_parser_init_full(gvm_json_pull_parser_t *, FILE *, size_t, size_t)
Initializes a JSON pull parser.
gvm_json_path_elem_t * gvm_json_pull_path_elem_new(gvm_json_pull_container_type_t, int)
Creates a new JSON path element.
gvm_json_pull_container_type_t
Type of container the parser is currently in.
@ GVM_JSON_PULL_CONTAINER_NONE
No container / document root.
@ GVM_JSON_PULL_CONTAINER_OBJECT
Object.
@ GVM_JSON_PULL_CONTAINER_ARRAY
Array.
gchar * gvm_json_path_to_string(GQueue *path)
Converts a path as used by a JSON pull parser to a JSONPath string.
void gvm_json_pull_parser_cleanup(gvm_json_pull_parser_t *)
Frees the data of a JSON pull parser.
void gvm_json_pull_parser_init(gvm_json_pull_parser_t *, FILE *)
Initializes a JSON pull parser with default buffer sizes.
gvm_json_pull_expect_t
Expected token state for the JSON pull parser.
@ GVM_JSON_PULL_EXPECT_UNDEFINED
Undefined state.
@ GVM_JSON_PULL_EXPECT_VALUE
Expect start of a value.
@ GVM_JSON_PULL_EXPECT_KEY
Expect start of a key.
@ GVM_JSON_PULL_EXPECT_EOF
Expect end of file.
@ GVM_JSON_PULL_EXPECT_COMMA
Expect comma or container end brace.
void gvm_json_pull_event_init(gvm_json_pull_event_t *)
Initializes a JSON pull event data structure.
void gvm_json_pull_event_cleanup(gvm_json_pull_event_t *)
Frees all data of JSON pull event data structure.
gvm_json_pull_event_type_t
Event types for the JSON pull parser.
@ GVM_JSON_PULL_EVENT_STRING
@ GVM_JSON_PULL_EVENT_OBJECT_START
@ GVM_JSON_PULL_EVENT_ERROR
@ GVM_JSON_PULL_EVENT_NULL
@ GVM_JSON_PULL_EVENT_EOF
@ GVM_JSON_PULL_EVENT_NUMBER
@ GVM_JSON_PULL_EVENT_ARRAY_END
@ GVM_JSON_PULL_EVENT_OBJECT_END
@ GVM_JSON_PULL_EVENT_ARRAY_START
@ GVM_JSON_PULL_EVENT_BOOLEAN
@ GVM_JSON_PULL_EVENT_UNDEFINED
struct gvm_json_path_elem gvm_json_path_elem_t
Path element types for the JSON pull parser.
Path element types for the JSON pull parser.
int depth
Number of ancestor elements.
int index
Index of the element within the parent.
char * key
Key if element is in an object.
gvm_json_pull_container_type_t parent_type
parent container type
Event generated by the JSON pull parser.
gchar * error_message
Error message, NULL on success.
cJSON * value
Value for non-container value events.
GQueue * path
Path to the event value.
gvm_json_pull_event_type_t type
Type of event.
char * read_buffer
Stream reading buffer.
size_t read_buffer_size
Size of the stream reading buffer.
gvm_json_pull_expect_t expect
Current expected token.
size_t last_read_size
Size of last stream read.
int keyword_pos
Position in a keyword like "true" or "null".
GString * parse_buffer
Buffer for parsing values and object keys.
size_t parse_buffer_limit
Maximum parse buffer size.
gvm_json_path_elem_t * path_add
Path elem to add in next step.
size_t read_pos
Position in current read.
GQueue * path
Path to the current value.
int last_read_char
Character last read from stream.
FILE * input_stream
Input stream.