00001 /* 00002 * Copyright (c) 2005, 2006 by KoanLogic s.r.l. <http://www.koanlogic.com> 00003 * All rights reserved. 00004 * 00005 * This file is part of KLone, and as such it is subject to the license stated 00006 * in the LICENSE file which you have received as part of this distribution. 00007 * 00008 * $Id: header.h,v 1.7 2006/01/09 12:38:37 tat Exp $ 00009 */ 00010 00011 #ifndef _KLONE_HEADER_H_ 00012 #define _KLONE_HEADER_H_ 00013 00014 #include <klone/field.h> 00015 #include <klone/io.h> 00016 00017 #ifdef __cplusplus 00018 extern "C" { 00019 #endif 00020 00021 typedef struct 00022 { 00023 fields_t fields; 00024 size_t nfields; 00025 } header_t; 00026 00027 int header_create(header_t**); 00028 int header_load(header_t*, io_t *); 00029 int header_load_from_cgienv(header_t *h); 00030 int header_free(header_t*); 00031 int header_add_field(header_t *h, field_t *f); 00032 int header_del_field(header_t *h, field_t *f); 00033 field_t* header_get_field(header_t *h, const char *name); 00034 int header_clear(header_t *h); 00035 00036 const char* header_get_field_value(header_t *h, const char *name); 00037 00038 int header_set_field(header_t *h, const char *name, const char *value); 00039 00040 field_t* header_get_fieldn(header_t *h, size_t idx); 00041 size_t header_field_count(header_t *h); 00042 00043 #ifdef __cplusplus 00044 } 00045 #endif 00046 00047 #endif