Annotation of embedaddon/lighttpd/src/data_count.c, revision 1.1.1.1
1.1 misho 1: #include "array.h"
2:
3: #include <string.h>
4: #include <stdio.h>
5: #include <stdlib.h>
6:
7: static data_unset *data_count_copy(const data_unset *s) {
8: data_count *src = (data_count *)s;
9: data_count *ds = data_count_init();
10:
11: buffer_copy_string_buffer(ds->key, src->key);
12: ds->count = src->count;
13: ds->is_index_key = src->is_index_key;
14: return (data_unset *)ds;
15: }
16:
17: static void data_count_free(data_unset *d) {
18: data_count *ds = (data_count *)d;
19:
20: buffer_free(ds->key);
21:
22: free(d);
23: }
24:
25: static void data_count_reset(data_unset *d) {
26: data_count *ds = (data_count *)d;
27:
28: buffer_reset(ds->key);
29:
30: ds->count = 0;
31: }
32:
33: static int data_count_insert_dup(data_unset *dst, data_unset *src) {
34: data_count *ds_dst = (data_count *)dst;
35: data_count *ds_src = (data_count *)src;
36:
37: ds_dst->count += ds_src->count;
38:
39: src->free(src);
40:
41: return 0;
42: }
43:
44: static void data_count_print(const data_unset *d, int depth) {
45: data_count *ds = (data_count *)d;
46: UNUSED(depth);
47:
48: fprintf(stdout, "count(%d)", ds->count);
49: }
50:
51:
52: data_count *data_count_init(void) {
53: data_count *ds;
54:
55: ds = calloc(1, sizeof(*ds));
56:
57: ds->key = buffer_init();
58: ds->count = 1;
59:
60: ds->copy = data_count_copy;
61: ds->free = data_count_free;
62: ds->reset = data_count_reset;
63: ds->insert_dup = data_count_insert_dup;
64: ds->print = data_count_print;
65: ds->type = TYPE_COUNT;
66:
67: return ds;
68: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>