コード例 #1
0
ファイル: parser.c プロジェクト: 00christian00/couchnode
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;
}
コード例 #2
0
ファイル: parser.c プロジェクト: mnunberg/libcouchbase
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;
}
コード例 #3
0
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;
}