Kouhei Sutou
null+****@clear*****
Fri Feb 3 11:21:03 JST 2017
Kouhei Sutou 2017-02-03 11:21:03 +0900 (Fri, 03 Feb 2017) New Revision: 438d0715478fae9e1c4175dad7f45b9dad095cd8 https://github.com/groonga/groonga/commit/438d0715478fae9e1c4175dad7f45b9dad095cd8 Message: Export bulk pop APIs Modified files: include/groonga/groonga.h lib/grn_db.h Modified: include/groonga/groonga.h (+22 -0) =================================================================== --- include/groonga/groonga.h 2017-02-03 11:10:11 +0900 (18f38fa) +++ include/groonga/groonga.h 2017-02-03 11:21:03 +0900 (0056794) @@ -1537,6 +1537,28 @@ GRN_API void grn_ctx_recv_handler_set(grn_ctx *, grn_bulk_write((ctx), (obj), (char *)&_val, sizeof(grn_obj *));\ } while (0) +#define GRN_BULK_POP(obj, value, type, default) do {\ + if (GRN_BULK_VSIZE(obj) >= sizeof(type)) {\ + GRN_BULK_INCR_LEN((obj), -(sizeof(type)));\ + value = *(type *)(GRN_BULK_CURR(obj));\ + } else {\ + value = default;\ + }\ +} while (0) +#define GRN_BOOL_POP(obj, value) GRN_BULK_POP(obj, value, unsigned char, 0) +#define GRN_INT8_POP(obj, value) GRN_BULK_POP(obj, value, int8_t, 0) +#define GRN_UINT8_POP(obj, value) GRN_BULK_POP(obj, value, uint8_t, 0) +#define GRN_INT16_POP(obj, value) GRN_BULK_POP(obj, value, int16_t, 0) +#define GRN_UINT16_POP(obj, value) GRN_BULK_POP(obj, value, uint16_t, 0) +#define GRN_INT32_POP(obj, value) GRN_BULK_POP(obj, value, int32_t, 0) +#define GRN_UINT32_POP(obj, value) GRN_BULK_POP(obj, value, uint32_t, 0) +#define GRN_INT64_POP(obj, value) GRN_BULK_POP(obj, value, int64_t, 0) +#define GRN_UINT64_POP(obj, value) GRN_BULK_POP(obj, value, uint64_t, 0) +#define GRN_FLOAT_POP(obj, value) GRN_BULK_POP(obj, value, double, 0.0) +#define GRN_TIME_POP GRN_INT64_POP +#define GRN_RECORD_POP(obj, value) GRN_BULK_POP(obj, value, grn_id, GRN_ID_NIL) +#define GRN_PTR_POP(obj, value) GRN_BULK_POP(obj, value, grn_obj *, NULL) + /* grn_str: deprecated. use grn_string instead. */ typedef struct { Modified: lib/grn_db.h (+0 -18) =================================================================== --- lib/grn_db.h 2017-02-03 11:10:11 +0900 (63c6dca) +++ lib/grn_db.h 2017-02-03 11:21:03 +0900 (973ad81) @@ -408,24 +408,6 @@ void grn_obj_spec_save(grn_ctx *ctx, grn_db_obj *obj); grn_rc grn_obj_reinit_for(grn_ctx *ctx, grn_obj *obj, grn_obj *domain_obj); -#define GRN_INT32_POP(obj,value) do {\ - if (GRN_BULK_VSIZE(obj) >= sizeof(int32_t)) {\ - GRN_BULK_INCR_LEN((obj), -(sizeof(int32_t)));\ - value = *(int32_t *)(GRN_BULK_CURR(obj));\ - } else {\ - value = 0;\ - }\ -} while (0) - -#define GRN_UINT32_POP(obj,value) do {\ - if (GRN_BULK_VSIZE(obj) >= sizeof(uint32_t)) {\ - GRN_BULK_INCR_LEN((obj), -(sizeof(uint32_t)));\ - value = *(uint32_t *)(GRN_BULK_CURR(obj));\ - } else {\ - value = 0;\ - }\ -} while (0) - void grn_expr_pack(grn_ctx *ctx, grn_obj *buf, grn_obj *expr); GRN_API grn_rc grn_expr_inspect(grn_ctx *ctx, grn_obj *buf, grn_obj *expr); grn_hash *grn_expr_get_vars(grn_ctx *ctx, grn_obj *expr, unsigned int *nvars); -------------- next part -------------- HTML����������������������������... 下载