5 DataSet<T>::DataSet(T (*create_func)(), bool (*load_func)(T, const char*), bool (*done_func)(T), void (*destr_func)(T))
12 rman = resman_create();
13 resman_set_load_func(rman, dataset_load_func, this);
14 resman_set_done_func(rman, dataset_done_func, this);
15 resman_set_destroy_func(rman, dataset_destroy_func, this);
19 DataSet<T>::~DataSet()
25 void DataSet<T>::clear()
30 rman = resman_create();
34 void DataSet<T>::update()
40 T DataSet<T>::get(const char *name) const
42 typename std::map<std::string, T>::const_iterator iter = data.find(name);
43 if(iter != data.end()) {
48 resman_lookup(rman, name, res);
53 // --- static functions to pass as callback to resman ---
56 int DataSet<T>::dataset_load_func(const char *fname, int id, void *cls)
58 DataSet<T> *dset = (DataSet<T>*)cls;
59 T data = (T)resman_get_res_data(dset->rman, id);
61 if(!dset->load(data, fname)) {
68 int DataSet<T>::dataset_done_func(int id, void *cls)
70 DataSet<T> *dset = (DataSet<T>*)cls;
72 T data = (T)resman_get_res_data(dset->rman, id);
73 int load_res = resman_get_res_result(dset->rman, id);
76 fprintf(stderr, "failed to load resource %d (%s)\n", id, resman_get_res_name(dset->rman, id));
78 printf("done loading resource %d (%s)\n", id, resman_get_res_name(dset->rman, id));
88 void DataSet<T>::dataset_destroy_func(int id, void *cls)
90 DataSet<T> *dset = (DataSet<T>*)cls;
91 T data = (T)resman_get_res_data(dset->rman, id);