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()) {
49 resman_lookup(rman, name, res);
54 // --- static functions to pass as callback to resman ---
57 int DataSet<T>::dataset_load_func(const char *fname, int id, void *cls)
59 DataSet<T> *dset = (DataSet<T>*)cls;
60 T data = (T)resman_get_res_data(dset->rman, id);
62 if(!dset->load(data, fname)) {
69 int DataSet<T>::dataset_done_func(int id, void *cls)
71 DataSet<T> *dset = (DataSet<T>*)cls;
73 T data = (T)resman_get_res_data(dset->rman, id);
74 int load_res = resman_get_res_result(dset->rman, id);
77 fprintf(stderr, "failed to load resource %d (%s)\n", id, resman_get_res_name(dset->rman, id));
79 printf("done loading resource %d (%s)\n", id, resman_get_res_name(dset->rman, id));
89 void DataSet<T>::dataset_destroy_func(int id, void *cls)
91 DataSet<T> *dset = (DataSet<T>*)cls;
92 T data = (T)resman_get_res_data(dset->rman, id);