sort.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00023
00024 #ifndef _NAF_SORT_H_
00025 #define _NAF_SORT_H_
00026
00027 #include <naf/autoinc.h>
00028 #include <naf/nafcore.h>
00029
00034 #define NAF_SORT_FIELDCOUNT 18
00035
00041 typedef gboolean (*NAFSortFlushFn) (
00042 void *ctx,
00043 NAFlow *flow,
00044 GError **err);
00045
00047 typedef struct _NAFSorter {
00049 GMemChunk *chunk;
00051 GPtrArray *array;
00053 uint32_t desc[NAF_SORT_FIELDCOUNT];
00055 uint32_t limit;
00057 gboolean defined;
00060 gboolean active;
00061 } NAFSorter;
00062
00071 void naf_sort_init(
00072 NAFSorter *sorter);
00073
00082 void naf_sort_reinit(
00083 NAFSorter *sorter);
00084
00091 void naf_sort_begin(
00092 NAFSorter *sorter);
00093
00103 void naf_sort_flow(
00104 NAFSorter *sorter,
00105 NAFlow *flow);
00106
00117 void naf_sort_flow_kv(
00118 NAFSorter *sorter,
00119 NAFlowKey *key,
00120 NAFlowVal *val);
00121
00134 gboolean naf_sort_flush(
00135 NAFSorter *sorter,
00136 NAFSortFlushFn ffn,
00137 void *fctx,
00138 GError **err);
00139
00147 void naf_sort_print(
00148 NAFSorter *sorter,
00149 GString *str);
00150
00159 gboolean naf_sort_parse(
00160 GScanner *scanner,
00161 NAFSorter *sorter);
00162
00163
00164 #endif