qemu/json-streamer.h
<<
>>
Prefs
   1/*
   2 * JSON streaming support
   3 *
   4 * Copyright IBM, Corp. 2009
   5 *
   6 * Authors:
   7 *  Anthony Liguori   <aliguori@us.ibm.com>
   8 *
   9 * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
  10 * See the COPYING.LIB file in the top-level directory.
  11 *
  12 */
  13
  14#ifndef QEMU_JSON_STREAMER_H
  15#define QEMU_JSON_STREAMER_H
  16
  17#include "qlist.h"
  18#include "json-lexer.h"
  19
  20typedef struct JSONMessageParser
  21{
  22    void (*emit)(struct JSONMessageParser *parser, QList *tokens);
  23    JSONLexer lexer;
  24    int brace_count;
  25    int bracket_count;
  26    QList *tokens;
  27    uint64_t token_size;
  28} JSONMessageParser;
  29
  30void json_message_parser_init(JSONMessageParser *parser,
  31                              void (*func)(JSONMessageParser *, QList *));
  32
  33int json_message_parser_feed(JSONMessageParser *parser,
  34                             const char *buffer, size_t size);
  35
  36int json_message_parser_flush(JSONMessageParser *parser);
  37
  38void json_message_parser_destroy(JSONMessageParser *parser);
  39
  40#endif
  41