[Groonga-commit] groonga/groonga at 438d071 [master] Export bulk pop APIs

Back to archive index

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����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index