Groonga
Loading...
Searching...
No Matches
output.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2009-2018 Brazil
3 Copyright (C) 2018-2025 Sutou Kouhei <kou@clear-code.com>
4
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with this library; if not, write to the Free Software
17 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18*/
19
20#pragma once
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
27
28#define GRN_OBJ_FORMAT_WITH_COLUMN_NAMES (0x01 << 0)
29#define GRN_OBJ_FORMAT_AS_ARRAY (0x01 << 3)
30/* Deprecated since 4.0.1. It will be removed at 5.0.0.
31 Use GRN_OBJ_FORMAT_AS_ARRAY instead.*/
32#define GRN_OBJ_FORMAT_ASARRAY GRN_OBJ_FORMAT_AS_ARRAY
33#define GRN_OBJ_FORMAT_WITH_WEIGHT (0x01 << 4)
34/* Format weight as float32.
35 Since 10.0.3 */
36#define GRN_OBJ_FORMAT_WEIGHT_FLOAT32 (0x01 << 5)
37/* Call grn_ctx_output_flush() internally for each 1024 records in a table.
38 The "1024" value may be changed.
39 Since 10.0.3 */
40#define GRN_OBJ_FORMAT_AUTO_FLUSH (0x01 << 6)
41
44 const void *min;
45 const void *max;
46 unsigned int min_size;
47 unsigned int max_size;
48 int nhits;
49 int offset;
50 int limit;
52 uint32_t flags;
54};
55
57grn_output_range_normalize(grn_ctx *ctx, int size, int *offset, int *limit);
58
59#define GRN_OBJ_FORMAT_INIT(format, \
60 format_nhits, \
61 format_offset, \
62 format_limit, \
63 format_hits_offset) \
64 do { \
65 GRN_PTR_INIT(&(format)->columns, GRN_OBJ_VECTOR, GRN_ID_NIL); \
66 (format)->nhits = (format_nhits); \
67 (format)->offset = (format_offset); \
68 (format)->limit = (format_limit); \
69 (format)->hits_offset = (format_hits_offset); \
70 (format)->flags = 0; \
71 (format)->expression = NULL; \
72 } while (0)
73
74/* Deprecated since 10.0.0. Use grn_obj_format_fin() instead. */
75#define GRN_OBJ_FORMAT_FIN(ctx, format) grn_obj_format_fin((ctx), (format))
78
79GRN_API void
81 grn_obj *outbuf,
82 grn_content_type output_type,
83 grn_obj *obj,
84 grn_obj_format *format);
85GRN_API void
87 grn_rc rc,
88 grn_obj *head,
89 grn_obj *body,
90 grn_obj *foot,
91 const char *file,
92 int line);
93GRN_API void
95GRN_API void
97 grn_ctx *ctx, grn_obj *output, grn_rc rc, const char *file, int line);
98
99GRN_API void
101 grn_obj *outbuf,
102 grn_content_type output_type,
103 const char *name,
104 int n_elements);
105GRN_API void
107 grn_obj *outbuf,
108 grn_content_type output_type);
109GRN_API void
111 grn_obj *outbuf,
112 grn_content_type output_type,
113 const char *name,
114 int n_elements);
115GRN_API void
117 grn_obj *outbuf,
118 grn_content_type output_type);
119GRN_API void
121GRN_API void
123 grn_obj *outbuf,
124 grn_content_type output_type,
125 int32_t value);
126GRN_API void
128 grn_obj *outbuf,
129 grn_content_type output_type,
130 uint32_t value);
131GRN_API void
133 grn_obj *outbuf,
134 grn_content_type output_type,
135 int64_t value);
136GRN_API void
138 grn_obj *outbuf,
139 grn_content_type output_type,
140 uint64_t value);
141#ifdef GRN_HAVE_BFLOAT16
142GRN_API void
143grn_output_bfloat16(grn_ctx *ctx,
144 grn_obj *outbuf,
145 grn_content_type output_type,
146 grn_bfloat16 value);
147#endif
148GRN_API void
150 grn_obj *outbuf,
151 grn_content_type output_type,
152 float value);
153GRN_API void
155 grn_obj *outbuf,
156 grn_content_type output_type,
157 double value);
158GRN_API void
160 grn_obj *outbuf,
161 grn_content_type output_type,
162 const char *value);
163GRN_API void
165 grn_obj *outbuf,
166 grn_content_type output_type,
167 const char *value,
168 size_t value_len);
169GRN_API void
171 grn_obj *outbuf,
172 grn_content_type output_type,
173 const uint8_t *value,
174 size_t value_len);
175GRN_API void
177 grn_obj *outbuf,
178 grn_content_type output_type,
179 const uint8_t *value,
180 size_t value_len);
181GRN_API void
183 grn_obj *outbuf,
184 grn_content_type output_type,
185 bool value);
186
187GRN_API void
189GRN_API void
190grn_ctx_output_array_open(grn_ctx *ctx, const char *name, int nelements);
191GRN_API void
193GRN_API void
194grn_ctx_output_map_open(grn_ctx *ctx, const char *name, int nelements);
195GRN_API void
197GRN_API void
199GRN_API void
200grn_ctx_output_int32(grn_ctx *ctx, int32_t value);
201GRN_API void
202grn_ctx_output_uint32(grn_ctx *ctx, uint32_t value);
203GRN_API void
204grn_ctx_output_int64(grn_ctx *ctx, int64_t value);
205GRN_API void
206grn_ctx_output_uint64(grn_ctx *ctx, uint64_t value);
207GRN_API void
209GRN_API void
210grn_ctx_output_float(grn_ctx *ctx, double value);
211GRN_API void
212grn_ctx_output_cstr(grn_ctx *ctx, const char *value);
213GRN_API void
214grn_ctx_output_str(grn_ctx *ctx, const char *value, size_t value_len);
215GRN_API void
216grn_ctx_output_bool(grn_ctx *ctx, bool value);
217GRN_API void
219GRN_API void
221 grn_obj *result_set,
222 grn_obj_format *format,
223 uint32_t n_additional_elements);
224GRN_API void
226 grn_obj *result_set,
227 grn_obj_format *format,
228 uint32_t n_additional_elements);
229GRN_API void
231 grn_obj *result_set,
232 grn_obj_format *format);
233GRN_API void
235 grn_obj *result_set,
236 grn_obj_format *format);
237GRN_API void
239 grn_obj *table,
240 grn_obj_format *format);
241GRN_API void
243GRN_API void
245 grn_obj *table,
246 grn_obj_format *format);
247GRN_API void
249GRN_API void
251 grn_obj *table,
252 grn_obj_format *format);
253
289GRN_API const char *
291
292/* obsolete */
295 grn_obj *bulk,
296 grn_obj *obj,
297 grn_obj_format *format);
298
299#ifdef __cplusplus
300}
301#endif
grn_rc
Definition groonga.h:61
#define GRN_API
Definition groonga.h:39
grn_content_type
The input/output content format.
Definition groonga.h:225
GRN_API void grn_ctx_output_array_close(grn_ctx *ctx)
GRN_API void grn_output_cstr(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type, const char *value)
GRN_API void grn_ctx_output_table_records_content(grn_ctx *ctx, grn_obj *table, grn_obj_format *format)
GRN_API void grn_ctx_output_int32(grn_ctx *ctx, int32_t value)
GRN_API void grn_ctx_output_map_open(grn_ctx *ctx, const char *name, int nelements)
GRN_API void grn_output_array_open(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type, const char *name, int n_elements)
GRN_API void grn_ctx_output_cstr(grn_ctx *ctx, const char *value)
GRN_API void grn_output_envelope_open(grn_ctx *ctx, grn_obj *output)
GRN_API void grn_output_map_open(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type, const char *name, int n_elements)
GRN_API void grn_output_int32(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type, int32_t value)
GRN_API void grn_ctx_output_table_records(grn_ctx *ctx, grn_obj *table, grn_obj_format *format)
GRN_API void grn_ctx_output_uint32(grn_ctx *ctx, uint32_t value)
GRN_API void grn_output_bool(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type, bool value)
GRN_API void grn_ctx_output_result_set_open(grn_ctx *ctx, grn_obj *result_set, grn_obj_format *format, uint32_t n_additional_elements)
GRN_API const char * grn_ctx_get_mime_type(grn_ctx *ctx)
GRN_API void grn_output_uint64(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type, uint64_t value)
GRN_API void grn_output_float32(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type, float value)
GRN_API void grn_ctx_output_int64(grn_ctx *ctx, int64_t value)
GRN_API void grn_ctx_output_float32(grn_ctx *ctx, float value)
GRN_API void grn_ctx_output_uint64(grn_ctx *ctx, uint64_t value)
GRN_API void grn_output_envelope_close(grn_ctx *ctx, grn_obj *output, grn_rc rc, const char *file, int line)
GRN_API void grn_output_binary(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type, const uint8_t *value, size_t value_len)
GRN_API void grn_ctx_output_result_set(grn_ctx *ctx, grn_obj *result_set, grn_obj_format *format)
GRN_API void grn_ctx_output_null(grn_ctx *ctx)
GRN_API grn_rc grn_text_otoj(grn_ctx *ctx, grn_obj *bulk, grn_obj *obj, grn_obj_format *format)
GRN_API grn_content_type grn_ctx_get_output_type(grn_ctx *ctx)
Get the current output type of the context.
GRN_API void grn_output_str(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type, const char *value, size_t value_len)
GRN_API void grn_ctx_output_result_set_open_metadata(grn_ctx *ctx, grn_obj *result_set, grn_obj_format *format, uint32_t n_additional_elements)
GRN_API void grn_ctx_output_array_open(grn_ctx *ctx, const char *name, int nelements)
GRN_API void grn_output_envelope(grn_ctx *ctx, grn_rc rc, grn_obj *head, grn_obj *body, grn_obj *foot, const char *file, int line)
GRN_API void grn_output_obj(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type, grn_obj *obj, grn_obj_format *format)
GRN_API void grn_ctx_output_map_close(grn_ctx *ctx)
GRN_API void grn_output_float(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type, double value)
GRN_API grn_rc grn_obj_format_fin(grn_ctx *ctx, grn_obj_format *format)
GRN_API void grn_ctx_output_table_records_close(grn_ctx *ctx)
GRN_API void grn_ctx_output_float(grn_ctx *ctx, double value)
GRN_API void grn_output_null(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type)
GRN_API void grn_ctx_output_result_set_close(grn_ctx *ctx, grn_obj *result_set, grn_obj_format *format)
GRN_API void grn_ctx_output_table_records_open(grn_ctx *ctx, int n_records)
GRN_API void grn_output_uint32(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type, uint32_t value)
GRN_API grn_rc grn_ctx_set_output_type(grn_ctx *ctx, grn_content_type type)
Set the output type for the context when executing a command.
GRN_API void grn_output_int64(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type, int64_t value)
GRN_API void grn_ctx_output_table_columns(grn_ctx *ctx, grn_obj *table, grn_obj_format *format)
GRN_API void grn_output_map_close(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type)
GRN_API void grn_ctx_output_bool(grn_ctx *ctx, bool value)
GRN_API void grn_ctx_output_obj(grn_ctx *ctx, grn_obj *value, grn_obj_format *format)
GRN_API void grn_ctx_output_flush(grn_ctx *ctx, int flags)
GRN_API void grn_output_array_close(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type)
GRN_API grn_rc grn_output_range_normalize(grn_ctx *ctx, int size, int *offset, int *limit)
GRN_API void grn_output_json(grn_ctx *ctx, grn_obj *outbuf, grn_content_type output_type, const uint8_t *value, size_t value_len)
GRN_API void grn_ctx_output_str(grn_ctx *ctx, const char *value, size_t value_len)
Definition groonga.h:351
Definition output.h:42
int nhits
Definition output.h:48
const void * min
Definition output.h:44
uint32_t flags
Definition output.h:52
int limit
Definition output.h:50
const void * max
Definition output.h:45
grn_obj * expression
Definition output.h:53
int offset
Definition output.h:49
grn_obj columns
Definition output.h:43
unsigned int max_size
Definition output.h:47
unsigned int min_size
Definition output.h:46
int hits_offset
Definition output.h:51
Definition groonga.h:919