Skip to content

Commit

Permalink
Export bulk pop APIs
Browse files Browse the repository at this point in the history
  • Loading branch information
kou committed Feb 3, 2017
1 parent 643dc64 commit 438d071
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 18 deletions.
22 changes: 22 additions & 0 deletions include/groonga/groonga.h
Expand Up @@ -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 {
Expand Down
18 changes: 0 additions & 18 deletions lib/grn_db.h
Expand Up @@ -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);
Expand Down

0 comments on commit 438d071

Please sign in to comment.