File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / lighttpd / src / data_integer.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Mon Oct 14 10:32:48 2013 UTC (10 years, 8 months ago) by misho
Branches: lighttpd, MAIN
CVS tags: v1_4_35p0, v1_4_35, v1_4_33, HEAD
1.4.33

    1: #include "array.h"
    2: 
    3: #include <stdio.h>
    4: #include <stdlib.h>
    5: #include <string.h>
    6: 
    7: static 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_string_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: 
   17: static 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: 
   25: static 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: 
   33: static 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: 
   41: static 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: 
   49: data_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: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>