• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/router/lighttpd-1.4.39/src/
1#include "array.h"
2
3#include <stdio.h>
4#include <stdlib.h>
5#include <string.h>
6
7static data_unset *data_integer_copy(const data_unset *s) {
8	data_integer *src = (data_integer *)s;
9	data_integer *ds = data_integer_init();
10
11	buffer_copy_buffer(ds->key, src->key);
12	ds->is_index_key = src->is_index_key;
13	ds->value = src->value;
14	return (data_unset *)ds;
15}
16
17static void data_integer_free(data_unset *d) {
18	data_integer *ds = (data_integer *)d;
19
20	buffer_free(ds->key);
21
22	free(d);
23}
24
25static void data_integer_reset(data_unset *d) {
26	data_integer *ds = (data_integer *)d;
27
28	/* reused integer elements */
29	buffer_reset(ds->key);
30	ds->value = 0;
31}
32
33static int data_integer_insert_dup(data_unset *dst, data_unset *src) {
34	UNUSED(dst);
35
36	src->free(src);
37
38	return 0;
39}
40
41static void data_integer_print(const data_unset *d, int depth) {
42	data_integer *ds = (data_integer *)d;
43	UNUSED(depth);
44
45	fprintf(stdout, "%d", ds->value);
46}
47
48
49data_integer *data_integer_init(void) {
50	data_integer *ds;
51
52	ds = calloc(1, sizeof(*ds));
53
54	ds->key = buffer_init();
55	ds->value = 0;
56
57	ds->copy = data_integer_copy;
58	ds->free = data_integer_free;
59	ds->reset = data_integer_reset;
60	ds->insert_dup = data_integer_insert_dup;
61	ds->print = data_integer_print;
62	ds->type = TYPE_INTEGER;
63
64	return ds;
65}
66