null+****@clear*****
null+****@clear*****
2010年 6月 21日 (月) 14:25:48 JST
Daijiro MORI 2010-06-21 05:25:48 +0000 (Mon, 21 Jun 2010)
New Revision: cd2a17c3d3615be057c438bab91f44641326cc96
Log:
Added outbuf and output_type to grn_output_* functions.
Modified files:
lib/output.c
lib/output.h
lib/proc.c
lib/str.h
Modified: lib/output.c (+36 -37)
===================================================================
--- lib/output.c 2010-06-20 07:42:47 +0000 (85449c6)
+++ lib/output.c 2010-06-21 05:25:48 +0000 (ca5dfe3)
@@ -15,9 +15,15 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+#ifndef GROONGA_IN_H
+#include "groonga_in.h"
+#endif /* GROONGA_IN_H */
+
#include <string.h>
-#include "output.h"
+#include "str.h"
#include "ql.h"
+#include "db.h"
+#include "output.h"
#define LEVELS (&ctx->impl->levels)
#define DEPTH (GRN_BULK_VSIZE(LEVELS)>>2)
@@ -27,11 +33,9 @@
#define INCR_LENGTH (DEPTH ? (GRN_UINT32_VALUE_AT(LEVELS, (DEPTH - 1)) += 2) : 0)
static void
-put_delimiter(grn_ctx *ctx)
+put_delimiter(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type)
{
uint32_t level = CURR_LEVEL;
- grn_obj *outbuf = ctx->impl->outbuf;
- grn_content_type output_type = ctx->impl->output_type;
if (level < 2) { return; }
switch (output_type) {
case GRN_CONTENT_JSON:
@@ -51,11 +55,10 @@ put_delimiter(grn_ctx *ctx)
}
void
-grn_output_array_open(grn_ctx *ctx, const char *name, int nelements)
+grn_output_array_open(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type,
+ const char *name, int nelements)
{
- grn_obj *outbuf = ctx->impl->outbuf;
- grn_content_type output_type = ctx->impl->output_type;
- put_delimiter(ctx);
+ put_delimiter(ctx, outbuf, output_type);
switch (output_type) {
case GRN_CONTENT_JSON:
GRN_TEXT_PUTC(ctx, outbuf, '[');
@@ -74,10 +77,8 @@ grn_output_array_open(grn_ctx *ctx, const char *name, int nelements)
}
void
-grn_output_array_close(grn_ctx *ctx)
+grn_output_array_close(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type)
{
- grn_obj *outbuf = ctx->impl->outbuf;
- grn_content_type output_type = ctx->impl->output_type;
switch (output_type) {
case GRN_CONTENT_JSON:
GRN_TEXT_PUTC(ctx, outbuf, ']');
@@ -100,11 +101,10 @@ grn_output_array_close(grn_ctx *ctx)
}
void
-grn_output_map_open(grn_ctx *ctx, const char *name, int nelements)
+grn_output_map_open(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type,
+ const char *name, int nelements)
{
- grn_obj *outbuf = ctx->impl->outbuf;
- grn_content_type output_type = ctx->impl->output_type;
- put_delimiter(ctx);
+ put_delimiter(ctx, outbuf, output_type);
switch (output_type) {
case GRN_CONTENT_JSON:
GRN_TEXT_PUTS(ctx, outbuf, "{");
@@ -123,10 +123,8 @@ grn_output_map_open(grn_ctx *ctx, const char *name, int nelements)
}
void
-grn_output_map_close(grn_ctx *ctx)
+grn_output_map_close(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type)
{
- grn_obj *outbuf = ctx->impl->outbuf;
- grn_content_type output_type = ctx->impl->output_type;
switch (output_type) {
case GRN_CONTENT_JSON:
GRN_TEXT_PUTS(ctx, outbuf, "}");
@@ -149,11 +147,9 @@ grn_output_map_close(grn_ctx *ctx)
}
void
-grn_output_int32(grn_ctx *ctx, int value)
+grn_output_int32(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type, int value)
{
- grn_obj *outbuf = ctx->impl->outbuf;
- grn_content_type output_type = ctx->impl->output_type;
- put_delimiter(ctx);
+ put_delimiter(ctx, outbuf, output_type);
switch (output_type) {
case GRN_CONTENT_JSON:
grn_text_itoa(ctx, outbuf, value);
@@ -171,11 +167,9 @@ grn_output_int32(grn_ctx *ctx, int value)
}
void
-grn_output_int64(grn_ctx *ctx, long long value)
+grn_output_int64(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type, int64_t value)
{
- grn_obj *outbuf = ctx->impl->outbuf;
- grn_content_type output_type = ctx->impl->output_type;
- put_delimiter(ctx);
+ put_delimiter(ctx, outbuf, output_type);
switch (output_type) {
case GRN_CONTENT_JSON:
grn_text_lltoa(ctx, outbuf, value);
@@ -193,20 +187,19 @@ grn_output_int64(grn_ctx *ctx, long long value)
}
void
-grn_output_str(grn_ctx *ctx, const char *value)
+grn_output_str(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type,
+ const char *value, size_t value_len)
{
- grn_obj *outbuf = ctx->impl->outbuf;
- grn_content_type output_type = ctx->impl->output_type;
- put_delimiter(ctx);
+ put_delimiter(ctx, outbuf, output_type);
switch (output_type) {
case GRN_CONTENT_JSON:
- grn_text_esc(ctx, outbuf, value, strlen(value));
+ grn_text_esc(ctx, outbuf, value, value_len);
break;
case GRN_CONTENT_TSV:
- grn_text_esc(ctx, outbuf, value, strlen(value));
+ grn_text_esc(ctx, outbuf, value, value_len);
break;
case GRN_CONTENT_XML:
- GRN_TEXT_PUTS(ctx, outbuf, value);
+ grn_text_escape_xml(ctx, outbuf, value, value_len);
break;
case GRN_CONTENT_NONE:
break;
@@ -215,11 +208,16 @@ grn_output_str(grn_ctx *ctx, const char *value)
}
void
-grn_output_obj(grn_ctx *ctx, grn_obj *obj, grn_obj_format *format)
+grn_output_cstr(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type,
+ const char *value)
+{
+ grn_output_str(ctx, outbuf, output_type, value, strlen(value));
+}
+
+void
+grn_output_obj(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type, grn_obj *obj, grn_obj_format *format)
{
- grn_obj *outbuf = ctx->impl->outbuf;
- grn_content_type output_type = ctx->impl->output_type;
- put_delimiter(ctx);
+ put_delimiter(ctx, outbuf, output_type);
switch (output_type) {
case GRN_CONTENT_JSON:
grn_text_otoj(ctx, outbuf, obj, format);
@@ -235,3 +233,4 @@ grn_output_obj(grn_ctx *ctx, grn_obj *obj, grn_obj_format *format)
}
INCR_LENGTH;
}
+
Modified: lib/output.h (+35 -8)
===================================================================
--- lib/output.h 2010-06-20 07:42:47 +0000 (83672ec)
+++ lib/output.h 2010-06-21 05:25:48 +0000 (17ad24a)
@@ -33,14 +33,41 @@
extern "C" {
#endif
-void grn_output_array_open(grn_ctx *ctx, const char *name, int nelements);
-void grn_output_array_close(grn_ctx *ctx);
-void grn_output_map_open(grn_ctx *ctx, const char *name, int nelements);
-void grn_output_map_close(grn_ctx *ctx);
-void grn_output_int32(grn_ctx *ctx, int value);
-void grn_output_int64(grn_ctx *ctx, long long value);
-void grn_output_str(grn_ctx *ctx, const char *value);
-void grn_output_obj(grn_ctx *ctx, grn_obj *obj, grn_obj_format *format);
+void grn_output_array_open(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type,
+ const char *name, int nelements);
+void grn_output_array_close(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type);
+void grn_output_map_open(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type,
+ const char *name, int nelements);
+void grn_output_map_close(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type);
+void grn_output_int32(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type,
+ int32_t value);
+void grn_output_int64(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type,
+ int64_t value);
+void grn_output_cstr(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type,
+ const char *value);
+void grn_output_str(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type,
+ const char *value, size_t value_len);
+void grn_output_obj(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type,
+ grn_obj *obj, grn_obj_format *format);
+
+#define GRN_OUTPUT_ARRAY_OPEN(name,nelements) \
+ (grn_output_array_open(ctx, ctx->impl->outbuf, ctx->impl->output_type, name, nelements))
+#define GRN_OUTPUT_ARRAY_CLOSE() \
+ (grn_output_array_close(ctx, ctx->impl->outbuf, ctx->impl->output_type))
+#define GRN_OUTPUT_MAP_OPEN(name,nelements) \
+ (grn_output_map_open(ctx, ctx->impl->outbuf, ctx->impl->output_type, name, nelements))
+#define GRN_OUTPUT_MAP_CLOSE() \
+ (grn_output_map_close(ctx, ctx->impl->outbuf, ctx->impl->output_type))
+#define GRN_OUTPUT_INT32(value) \
+ (grn_output_int32(ctx, ctx->impl->outbuf, ctx->impl->output_type, value))
+#define GRN_OUTPUT_INT64(value) \
+ (grn_output_int64(ctx, ctx->impl->outbuf, ctx->impl->output_type, value))
+#define GRN_OUTPUT_CSTR(value)\
+ (grn_output_cstr(ctx, ctx->impl->outbuf, ctx->impl->output_type, value))
+#define GRN_OUTPUT_STR(value,value_len)\
+ (grn_output_str(ctx, ctx->impl->outbuf, ctx->impl->output_type, value, value_len))
+#define GRN_OUTPUT_OBJ(obj,format)\
+ (grn_output_obj(ctx, ctx->impl->outbuf, ctx->impl->output_type, obj, format))
#ifdef __cplusplus
}
Modified: lib/proc.c (+104 -104)
===================================================================
--- lib/proc.c 2010-06-20 07:42:47 +0000 (ea57f1b)
+++ lib/proc.c 2010-06-21 05:25:48 +0000 (00c3a31)
@@ -165,7 +165,7 @@ grn_select(grn_ctx *ctx, const char *table, unsigned table_len,
res = table_;
}
LAP("select");
- grn_output_array_open(ctx, "RESULTPAGE", -1);
+ GRN_OUTPUT_ARRAY_OPEN("RESULTPAGE", -1);
if (res) {
if (scorer && scorer_len) {
grn_obj *v;
@@ -202,7 +202,7 @@ grn_select(grn_ctx *ctx, const char *table, unsigned table_len,
GRN_OBJ_FORMAT_WITH_COLUMN_NAMES|
GRN_OBJ_FORMAT_XML_ELEMENT_RESULTSET;
grn_obj_columns(ctx, sorted, output_columns, output_columns_len, &format.columns);
- grn_output_obj(ctx, sorted, &format);
+ GRN_OUTPUT_OBJ(sorted, &format);
GRN_OBJ_FORMAT_FIN(ctx, &format);
grn_table_sort_key_close(ctx, keys, nkeys);
}
@@ -214,7 +214,7 @@ grn_select(grn_ctx *ctx, const char *table, unsigned table_len,
GRN_OBJ_FORMAT_WITH_COLUMN_NAMES|
GRN_OBJ_FORMAT_XML_ELEMENT_RESULTSET;
grn_obj_columns(ctx, res, output_columns, output_columns_len, &format.columns);
- grn_output_obj(ctx, res, &format);
+ GRN_OUTPUT_OBJ(res, &format);
GRN_OBJ_FORMAT_FIN(ctx, &format);
}
LAP("output");
@@ -254,7 +254,7 @@ grn_select(grn_ctx *ctx, const char *table, unsigned table_len,
grn_obj_columns(ctx, sorted,
drilldown_output_columns, drilldown_output_columns_len,
&format.columns);
- grn_output_obj(ctx, sorted, &format);
+ GRN_OUTPUT_OBJ(sorted, &format);
GRN_OBJ_FORMAT_FIN(ctx, &format);
grn_obj_unlink(ctx, sorted);
}
@@ -268,7 +268,7 @@ grn_select(grn_ctx *ctx, const char *table, unsigned table_len,
GRN_OBJ_FORMAT_XML_ELEMENT_NAVIGATIONENTRY;
grn_obj_columns(ctx, g.table, drilldown_output_columns,
drilldown_output_columns_len, &format.columns);
- grn_output_obj(ctx, g.table, &format);
+ GRN_OUTPUT_OBJ(g.table, &format);
GRN_OBJ_FORMAT_FIN(ctx, &format);
}
grn_obj_unlink(ctx, g.table);
@@ -280,7 +280,7 @@ grn_select(grn_ctx *ctx, const char *table, unsigned table_len,
}
if (res != table_) { grn_obj_unlink(ctx, res); }
}
- grn_output_array_close(ctx);
+ GRN_OUTPUT_ARRAY_CLOSE();
if (!ctx->rc && cacheable && cache_key_size <= GRN_TABLE_MAX_KEY_SIZE
&& (!cache || cache_len != 2 || *cache != 'n' || *(cache + 1) != 'o')) {
grn_cache_update(ctx, cache_key, cache_key_size, outbuf);
@@ -359,7 +359,7 @@ proc_load(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
if (ctx->impl->loader.stat != GRN_LOADER_END) {
grn_ctx_set_next_expr(ctx, grn_proc_get_info(ctx, user_data, NULL, NULL, NULL));
} else {
- grn_output_int64(ctx, ctx->impl->loader.nrecords);
+ GRN_OUTPUT_INT64(ctx->impl->loader.nrecords);
if (ctx->impl->loader.table) {
grn_db_touch(ctx, DB_OBJ(ctx->impl->loader.table)->db);
}
@@ -373,16 +373,16 @@ proc_status(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
{
grn_timeval now;
grn_timeval_now(ctx, &now);
- grn_output_map_open(ctx, "STATUS", -1);
- grn_output_str(ctx, "alloc_count");
- grn_output_int32(ctx, grn_alloc_count());
- grn_output_str(ctx, "starttime");
- grn_output_int32(ctx, grn_starttime.tv_sec);
- grn_output_str(ctx, "uptime");
- grn_output_int32(ctx, now.tv_sec - grn_starttime.tv_sec);
- grn_output_str(ctx, "version");
- grn_output_str(ctx, grn_get_version());
- grn_output_map_close(ctx);
+ GRN_OUTPUT_MAP_OPEN("STATUS", -1);
+ GRN_OUTPUT_CSTR("alloc_count");
+ GRN_OUTPUT_INT32(grn_alloc_count());
+ GRN_OUTPUT_CSTR("starttime");
+ GRN_OUTPUT_INT32(grn_starttime.tv_sec);
+ GRN_OUTPUT_CSTR("uptime");
+ GRN_OUTPUT_INT32(now.tv_sec - grn_starttime.tv_sec);
+ GRN_OUTPUT_CSTR("version");
+ GRN_OUTPUT_CSTR(grn_get_version());
+ GRN_OUTPUT_MAP_CLOSE();
return NULL;
}
@@ -717,32 +717,32 @@ print_columninfo(grn_ctx *ctx, grn_obj *column)
id = grn_obj_id(ctx, column);
path = grn_obj_path(ctx, column);
GRN_TEXT_INIT(&o, 0);
- grn_output_array_open(ctx, "", -1);
- grn_output_int64(ctx, id);
+ GRN_OUTPUT_ARRAY_OPEN("", -1);
+ GRN_OUTPUT_INT64(id);
column2name(ctx, column, &o);
- grn_output_obj(ctx, &o, NULL);
- grn_output_str(ctx, path);
- grn_output_str(ctx, type);
+ GRN_OUTPUT_OBJ(&o, NULL);
+ GRN_OUTPUT_CSTR(path);
+ GRN_OUTPUT_CSTR(type);
grn_column_create_flags_to_text(ctx, &o, column->header.flags);
- grn_output_obj(ctx, &o, NULL);
+ GRN_OUTPUT_OBJ(&o, NULL);
objid2name(ctx, column->header.domain, &o);
- grn_output_obj(ctx, &o, NULL);
+ GRN_OUTPUT_OBJ(&o, NULL);
objid2name(ctx, grn_obj_get_range(ctx, column), &o);
- grn_output_obj(ctx, &o, NULL);
+ GRN_OUTPUT_OBJ(&o, NULL);
{
grn_db_obj *obj = (grn_db_obj *)column;
grn_id *s = obj->source;
int i = 0, n = obj->source_size / sizeof(grn_id);
- grn_output_array_open(ctx, "", -1);
+ GRN_OUTPUT_ARRAY_OPEN("", -1);
for (i = 0; i < n; i++, s++) {
objid2name(ctx, *s, &o);
- grn_output_obj(ctx, &o, NULL);
+ GRN_OUTPUT_OBJ(&o, NULL);
}
- grn_output_array_close(ctx);
+ GRN_OUTPUT_ARRAY_CLOSE();
}
// print_obj_source(ctx, (grn_db_obj *)column);
- grn_output_array_close(ctx);
+ GRN_OUTPUT_ARRAY_CLOSE();
GRN_OBJ_FIN(ctx, &o);
return 1;
}
@@ -756,41 +756,41 @@ proc_column_list(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_da
grn_hash *cols;
if ((cols = grn_hash_create(ctx, NULL, sizeof(grn_id), 0,
GRN_OBJ_TABLE_HASH_KEY|GRN_HASH_TINY))) {
- grn_output_array_open(ctx, "", -1);
- grn_output_array_open(ctx, "", -1);
- grn_output_array_open(ctx, "", -1);
- grn_output_str(ctx, "id");
- grn_output_str(ctx, "UInt32");
- grn_output_array_close(ctx);
- grn_output_array_open(ctx, "", -1);
- grn_output_str(ctx, "name");
- grn_output_str(ctx, "ShortText");
- grn_output_array_close(ctx);
- grn_output_array_open(ctx, "", -1);
- grn_output_str(ctx, "path");
- grn_output_str(ctx, "ShortText");
- grn_output_array_close(ctx);
- grn_output_array_open(ctx, "", -1);
- grn_output_str(ctx, "type");
- grn_output_str(ctx, "ShortText");
- grn_output_array_close(ctx);
- grn_output_array_open(ctx, "", -1);
- grn_output_str(ctx, "flags");
- grn_output_str(ctx, "ShortText");
- grn_output_array_close(ctx);
- grn_output_array_open(ctx, "", -1);
- grn_output_str(ctx, "domain");
- grn_output_str(ctx, "ShortText");
- grn_output_array_close(ctx);
- grn_output_array_open(ctx, "", -1);
- grn_output_str(ctx, "range");
- grn_output_str(ctx, "ShortText");
- grn_output_array_close(ctx);
- grn_output_array_open(ctx, "", -1);
- grn_output_str(ctx, "source");
- grn_output_str(ctx, "ShortText");
- grn_output_array_close(ctx);
- grn_output_array_close(ctx);
+ GRN_OUTPUT_ARRAY_OPEN("", -1);
+ GRN_OUTPUT_ARRAY_OPEN("", -1);
+ GRN_OUTPUT_ARRAY_OPEN("", -1);
+ GRN_OUTPUT_CSTR("id");
+ GRN_OUTPUT_CSTR("UInt32");
+ GRN_OUTPUT_ARRAY_CLOSE();
+ GRN_OUTPUT_ARRAY_OPEN("", -1);
+ GRN_OUTPUT_CSTR("name");
+ GRN_OUTPUT_CSTR("ShortText");
+ GRN_OUTPUT_ARRAY_CLOSE();
+ GRN_OUTPUT_ARRAY_OPEN("", -1);
+ GRN_OUTPUT_CSTR("path");
+ GRN_OUTPUT_CSTR("ShortText");
+ GRN_OUTPUT_ARRAY_CLOSE();
+ GRN_OUTPUT_ARRAY_OPEN("", -1);
+ GRN_OUTPUT_CSTR("type");
+ GRN_OUTPUT_CSTR("ShortText");
+ GRN_OUTPUT_ARRAY_CLOSE();
+ GRN_OUTPUT_ARRAY_OPEN("", -1);
+ GRN_OUTPUT_CSTR("flags");
+ GRN_OUTPUT_CSTR("ShortText");
+ GRN_OUTPUT_ARRAY_CLOSE();
+ GRN_OUTPUT_ARRAY_OPEN("", -1);
+ GRN_OUTPUT_CSTR("domain");
+ GRN_OUTPUT_CSTR("ShortText");
+ GRN_OUTPUT_ARRAY_CLOSE();
+ GRN_OUTPUT_ARRAY_OPEN("", -1);
+ GRN_OUTPUT_CSTR("range");
+ GRN_OUTPUT_CSTR("ShortText");
+ GRN_OUTPUT_ARRAY_CLOSE();
+ GRN_OUTPUT_ARRAY_OPEN("", -1);
+ GRN_OUTPUT_CSTR("source");
+ GRN_OUTPUT_CSTR("ShortText");
+ GRN_OUTPUT_ARRAY_CLOSE();
+ GRN_OUTPUT_ARRAY_CLOSE();
if (grn_table_columns(ctx, table, NULL, 0, (grn_obj *)cols) >= 0) {
grn_id *key;
GRN_HASH_EACH(ctx, cols, id, &key, NULL, NULL, {
@@ -801,7 +801,7 @@ proc_column_list(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_da
}
});
}
- grn_output_array_close(ctx);
+ GRN_OUTPUT_ARRAY_CLOSE();
grn_hash_close(ctx, cols);
}
grn_obj_unlink(ctx, table);
@@ -831,18 +831,18 @@ print_tableinfo(grn_ctx *ctx, grn_obj *table)
id = grn_obj_id(ctx, table);
path = grn_obj_path(ctx, table);
GRN_TEXT_INIT(&o, 0);
- grn_output_array_open(ctx, "", -1);
- grn_output_int64(ctx, id);
+ GRN_OUTPUT_ARRAY_OPEN("", -1);
+ GRN_OUTPUT_INT64(id);
objid2name(ctx, id, &o);
- grn_output_obj(ctx, &o, NULL);
- grn_output_str(ctx, path);
+ GRN_OUTPUT_OBJ(&o, NULL);
+ GRN_OUTPUT_CSTR(path);
grn_table_create_flags_to_text(ctx, &o, table->header.flags);
- grn_output_obj(ctx, &o, NULL);
+ GRN_OUTPUT_OBJ(&o, NULL);
objid2name(ctx, table->header.domain, &o);
- grn_output_obj(ctx, &o, NULL);
+ GRN_OUTPUT_OBJ(&o, NULL);
objid2name(ctx, grn_obj_get_range(ctx, table), &o);
- grn_output_obj(ctx, &o, NULL);
- grn_output_array_close(ctx);
+ GRN_OUTPUT_OBJ(&o, NULL);
+ GRN_OUTPUT_ARRAY_CLOSE();
GRN_OBJ_FIN(ctx, &o);
return 1;
}
@@ -853,33 +853,33 @@ proc_table_list(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_dat
grn_table_cursor *cur;
if ((cur = grn_table_cursor_open(ctx, ctx->impl->db, NULL, 0, NULL, 0, 0, -1, 0))) {
grn_id id;
- grn_output_array_open(ctx, "", -1);
- grn_output_array_open(ctx, "", -1);
- grn_output_array_open(ctx, "", -1);
- grn_output_str(ctx, "id");
- grn_output_str(ctx, "UInt32");
- grn_output_array_close(ctx);
- grn_output_array_open(ctx, "", -1);
- grn_output_str(ctx, "name");
- grn_output_str(ctx, "ShortText");
- grn_output_array_close(ctx);
- grn_output_array_open(ctx, "", -1);
- grn_output_str(ctx, "path");
- grn_output_str(ctx, "ShortText");
- grn_output_array_close(ctx);
- grn_output_array_open(ctx, "", -1);
- grn_output_str(ctx, "flags");
- grn_output_str(ctx, "ShortText");
- grn_output_array_close(ctx);
- grn_output_array_open(ctx, "", -1);
- grn_output_str(ctx, "domain");
- grn_output_str(ctx, "ShortText");
- grn_output_array_close(ctx);
- grn_output_array_open(ctx, "", -1);
- grn_output_str(ctx, "range");
- grn_output_str(ctx, "ShortText");
- grn_output_array_close(ctx);
- grn_output_array_close(ctx);
+ GRN_OUTPUT_ARRAY_OPEN("", -1);
+ GRN_OUTPUT_ARRAY_OPEN("", -1);
+ GRN_OUTPUT_ARRAY_OPEN("", -1);
+ GRN_OUTPUT_CSTR("id");
+ GRN_OUTPUT_CSTR("UInt32");
+ GRN_OUTPUT_ARRAY_CLOSE();
+ GRN_OUTPUT_ARRAY_OPEN("", -1);
+ GRN_OUTPUT_CSTR("name");
+ GRN_OUTPUT_CSTR("ShortText");
+ GRN_OUTPUT_ARRAY_CLOSE();
+ GRN_OUTPUT_ARRAY_OPEN("", -1);
+ GRN_OUTPUT_CSTR("path");
+ GRN_OUTPUT_CSTR("ShortText");
+ GRN_OUTPUT_ARRAY_CLOSE();
+ GRN_OUTPUT_ARRAY_OPEN("", -1);
+ GRN_OUTPUT_CSTR("flags");
+ GRN_OUTPUT_CSTR("ShortText");
+ GRN_OUTPUT_ARRAY_CLOSE();
+ GRN_OUTPUT_ARRAY_OPEN("", -1);
+ GRN_OUTPUT_CSTR("domain");
+ GRN_OUTPUT_CSTR("ShortText");
+ GRN_OUTPUT_ARRAY_CLOSE();
+ GRN_OUTPUT_ARRAY_OPEN("", -1);
+ GRN_OUTPUT_CSTR("range");
+ GRN_OUTPUT_CSTR("ShortText");
+ GRN_OUTPUT_ARRAY_CLOSE();
+ GRN_OUTPUT_ARRAY_CLOSE();
while ((id = grn_table_cursor_next(ctx, cur)) != GRN_ID_NIL) {
grn_obj *o;
if ((o = grn_ctx_at(ctx, id))) {
@@ -887,7 +887,7 @@ proc_table_list(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_dat
grn_obj_unlink(ctx, o);
}
}
- grn_output_array_close(ctx);
+ GRN_OUTPUT_ARRAY_CLOSE();
grn_table_cursor_close(ctx, cur);
}
return NULL;
@@ -1084,7 +1084,7 @@ proc_set(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
GRN_TEXT_VALUE(VAR(4)),
GRN_TEXT_LEN(VAR(4)), &format.columns);
format.flags = 0 /* GRN_OBJ_FORMAT_WITH_COLUMN_NAMES */;
- grn_output_obj(ctx, &obj, &format);
+ GRN_OUTPUT_OBJ(&obj, &format);
GRN_OBJ_FORMAT_FIN(ctx, &format);
} else {
/* todo : error handling */
@@ -1204,7 +1204,7 @@ proc_get(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
GRN_RECORD_SET(ctx, &obj, id);
grn_obj_columns(ctx, table, GRN_TEXT_VALUE(VAR(2)), GRN_TEXT_LEN(VAR(2)), &format.columns);
format.flags = 0 /* GRN_OBJ_FORMAT_WITH_COLUMN_NAMES */;
- grn_output_obj(ctx, &obj, &format);
+ GRN_OUTPUT_OBJ(&obj, &format);
GRN_OBJ_FORMAT_FIN(ctx, &format);
}
return NULL;
@@ -1778,7 +1778,7 @@ static grn_obj *
proc_cache_limit(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data)
{
uint32_t *mp = grn_cach_max_nentries();
- grn_output_int64(ctx, *mp);
+ GRN_OUTPUT_INT64(*mp);
if (GRN_TEXT_LEN(VAR(0))) {
const char *rest;
uint32_t max = grn_atoui(GRN_TEXT_VALUE(VAR(0)),
Modified: lib/str.h (+2 -0)
===================================================================
--- lib/str.h 2010-06-20 07:42:47 +0000 (2030e46)
+++ lib/str.h 2010-06-21 05:25:48 +0000 (8614b81)
@@ -97,6 +97,8 @@ grn_str *grn_str_open_(grn_ctx *ctx, const char *str, unsigned int str_len, int
}\
}
+grn_rc grn_text_ulltoa(grn_ctx *ctx, grn_obj *buf, unsigned long long int i);
+
GRN_API const char *grn_text_cgidec(grn_ctx *ctx, grn_obj *buf,
const char *p, const char *e, char d);