00001
00032 #include "structures.h"
00033 #include "utils/list.h"
00034 #include "utils/check_func.h"
00035 #include "utils/kp_debug.h"
00036
00037 #ifndef _PROPERTIES_H
00038 #define _PROPERTIES_H
00039
00040
00041
00042
00044
00045 const property_t *get_property_type(const class_t *class, const char *propname);
00046
00047 int set_property_by_name(void *entity, char *propname, void *data);
00048 int set_property(void *entity, property_t *property, void *value);
00049 int set_property_with_value_struct(void *entity, const prop_val_t *prop_val);
00050
00051 const prop_val_t* get_property(individual_t *ind, const char *propname);
00052 const prop_val_t* get_property_with_data(individual_t *ind, const char *propname, void *data);
00053 list_t* get_properties(individual_t *ind, const char *propname);
00054
00055 int update_property(void *entity, const char *propname, void *new_data);
00056 int update_property_with_data(void *entity, const char *propname,
00057 const void *old_data, void *new_data);
00058 int update_property_value_data(prop_val_t* prop_value, void* new_data);
00059
00060 int unset_property_for_individual(individual_t *ind, char *propname, void *data);
00061
00063
00064
00066
00067 bool is_prop_values_equal(prop_val_t *a, prop_val_t *b);
00068 bool is_prop_names_equal(prop_val_t *a, prop_val_t *b);
00069
00071
00072
00073 #endif