00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include "structures.h"
00024 #include "utils/list.h"
00025 #include "utils/check_func.h"
00026
00027 #ifndef _PROPERTIES_H
00028 #define _PROPERTIES_H
00029
00030
00031
00032
00033 const property_t *get_property_type(const class_t *class, const char *propname);
00034
00035
00036 int set_property_by_name(void *entity, char *propname, void *data);
00037 int set_property(void *entity, property_t *property, void *value);
00038 int set_property_with_value_struct(void *entity, const prop_val_t *prop_val);
00039
00040
00041 const prop_val_t* get_property(individual_t *ind, const char *propname);
00042 const prop_val_t* get_property_with_data(individual_t *ind, const char *propname, void *data);
00043 list_t* get_properties(individual_t *ind, const char *propname);
00044
00045
00046
00047 int update_property(void *entity, const char *propname, void *new_data);
00048
00049 int update_property_with_data(void *entity, const char *propname,
00050 const void *old_data, void *new_data);
00051
00052 int update_property_value_data(prop_val_t* prop_value, void* new_data);
00053
00054
00055 int unset_property_for_individual(individual_t *ind, char *propname, void *data);
00056
00057 bool is_prop_values_equal(prop_val_t *a, prop_val_t *b);
00058 bool is_prop_names_equal(prop_val_t *a, prop_val_t *b);
00059
00060 #endif