#ifndef __DSATTRIBUTE_H__
#define __DSATTRIBUTE_H__
#include <NetInfo/dsdata.h>
typedef struct
{
dsdata *key;
u_int32_t count;
dsdata **value;
u_int32_t retain;
} dsattribute;
dsattribute *dsattribute_alloc(void);
dsattribute *dsattribute_new(dsdata *);
dsattribute *dsattribute_copy(dsattribute *);
dsattribute *dsattribute_retain(dsattribute *);
void dsattribute_release(dsattribute *);
void dsattribute_insert(dsattribute *, dsdata *, u_int32_t);
void dsattribute_append(dsattribute *, dsdata *);
void dsattribute_remove(dsattribute *, u_int32_t);
void dsattribute_merge(dsattribute *, dsdata *);
u_int32_t dsattribute_index(dsattribute *, dsdata *);
dsdata *dsattribute_value(dsattribute *, u_int32_t);
dsdata *dsattribute_key(dsattribute *a);
int dsattribute_match(dsattribute *, dsattribute *);
int dsattribute_equal(dsattribute *, dsattribute *);
void dsattribute_setkey(dsattribute *, dsdata *);
dsdata *dsattribute_to_dsdata(dsattribute *a);
dsattribute *dsdata_to_dsattribute(dsdata *d);
#endif __DSATTRIBUTE_H__