예제 #1
0
파일: rmsgpack.c 프로젝트: notaz/RetroArch
static int read_map(int fd, uint32_t len,
                    struct rmsgpack_read_callbacks *callbacks, void *data)
{
    int rv;
    unsigned i;

    if (callbacks->read_map_start &&
            (rv = callbacks->read_map_start(len, data)) < 0)
        return rv;

    for (i = 0; i < len; i++)
    {
        if ((rv = rmsgpack_read(fd, callbacks, data)) < 0)
            return rv;
        if ((rv = rmsgpack_read(fd, callbacks, data)) < 0)
            return rv;
    }

    return 0;
}
예제 #2
0
int rmsgpack_dom_read(FILE *fp, struct rmsgpack_dom_value *out)
{
   struct dom_reader_state s = {0};
   int rv                    = 0;

   s.stack[0] = out;

   rv = rmsgpack_read(fp, &dom_reader_callbacks, &s);

   if (rv < 0)
      rmsgpack_dom_value_free(out);

   return rv;
}
예제 #3
0
int main(void)
{
   struct stub_state state;
   RFILE *fd = retro_fopen("test.msgpack", RFILE_MODE_READ, 0);

   state.i = 0;
   state.stack[0] = 0;

   rmsgpack_read(fd, &stub_callbacks, &state);

   printf("Test succeeded.\n");
   retro_fclose(fd);

   return 0;
}