lcbjsp_PARSER* lcbjsp_create(int mode) { lcbjsp_PARSER *ctx; jsonsl_error_t err; ctx = calloc(1, sizeof(*ctx)); ctx->jsn = jsonsl_new(512); ctx->mode = mode; if (ctx->mode == LCBJSP_MODE_VIEWS) { ctx->jpr = jsonsl_jpr_new("/rows/^", &err); } else { ctx->jpr = jsonsl_jpr_new("/results/^", &err); } ctx->jsn_rdetails = jsonsl_new(32); lcb_string_init(&ctx->meta_buf); lcb_string_init(&ctx->current_buf); lcb_string_init(&ctx->last_hk); if (!ctx->jpr) { abort(); } if (!ctx->jsn_rdetails) { abort(); } jsonsl_jpr_match_state_init(ctx->jsn, &ctx->jpr, 1); assert(ctx->jsn_rdetails); lcbjsp_reset(ctx); assert(ctx->jsn_rdetails); return ctx; }
lcbvrow_PARSER* lcbvrow_create(void) { lcbvrow_PARSER *ctx; jsonsl_error_t err; ctx = calloc(1, sizeof(*ctx)); ctx->jsn = jsonsl_new(512); ctx->jpr = jsonsl_jpr_new("/rows/^", &err); ctx->jsn_rdetails = jsonsl_new(32); lcb_string_init(&ctx->meta_buf); lcb_string_init(&ctx->current_buf); lcb_string_init(&ctx->last_hk); if (!ctx->jpr) { abort(); } if (!ctx->jsn_rdetails) { abort(); } jsonsl_jpr_match_state_init(ctx->jsn, &ctx->jpr, 1); assert(ctx->jsn_rdetails); lcbvrow_reset(ctx); assert(ctx->jsn_rdetails); return ctx; }
lcbex_vrow_ctx_t* lcbex_vrow_create(void) { lcbex_vrow_ctx_t *ctx; jsonsl_error_t err; ctx = calloc(1, sizeof(*ctx)); ctx->jsn = jsonsl_new(512); ctx->jpr = jsonsl_jpr_new("/rows/^", &err); if (!ctx->jpr) { abort(); } jsonsl_jpr_match_state_init(ctx->jsn, &ctx->jpr, 1); lcbex_vrow_reset(ctx); return ctx; }