X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=laserbrain_demo;a=blobdiff_plain;f=src%2Fdataset.inl;h=3b6893f05fbbca877d15cd6510c5a235972722db;hp=ca01ea2d3336d450e74f7e960bc749e9ebb464b6;hb=6952f241b5880213a9ec2583653192cb5863328c;hpb=12e70d8b9c2d5c81500d7631b9db5d17a34fe918 diff --git a/src/dataset.inl b/src/dataset.inl index ca01ea2..3b6893f 100644 --- a/src/dataset.inl +++ b/src/dataset.inl @@ -32,8 +32,9 @@ void DataSet::clear() } template -void DataSet::update() +void DataSet::update(long timeslice) { + resman_setopt(rman, RESMAN_OPT_TIMESLICE, timeslice); resman_poll(rman); } @@ -47,10 +48,44 @@ T DataSet::get(const char *name) const T res = create(); data[name] = res; - resman_lookup(rman, name, res); + resman_add(rman, name, res); return res; } +template +int DataSet::pending() const +{ + return resman_pending(rman); +} + +template +void DataSet::wait() const +{ + resman_wait_all(rman); +} + +template +void DataSet::add_loaded_callback(LoadedCallbackFunc func, void *cls) +{ + std::pair cb; + cb.first = func; + cb.second = cls; + loaded_cb.push_back(cb); +} + +template +bool DataSet::remove_loaded_callback(LoadedCallbackFunc func) +{ + int numcb = (int)loaded_cb.size(); + for(int i=0; i::dataset_done_func(int id, void *cls) if(dset->done) { dset->done(data); } + + int numcb = (int)dset->loaded_cb.size(); + for(int i=0; iloaded_cb[i].first(data, dset->loaded_cb[i].second); + } return 0; }