diff options
author | John Langford <jl@nyclamp.(none)> | 2014-01-08 19:15:57 +0400 |
---|---|---|
committer | John Langford <jl@nyclamp.(none)> | 2014-01-08 19:15:57 +0400 |
commit | 7d1cebb2b1480c2fa63e60214f033452c4b2da7c (patch) | |
tree | c485d8316591ddc4cec138d12e12d9e4736f1a3a /vowpalwabbit/sender.cc | |
parent | cce351ad81aaa485f1d4e85f572d448b5f4a2631 (diff) |
void* removal in process
Diffstat (limited to 'vowpalwabbit/sender.cc')
-rw-r--r-- | vowpalwabbit/sender.cc | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/vowpalwabbit/sender.cc b/vowpalwabbit/sender.cc index 35a6eed1..f1f102f5 100644 --- a/vowpalwabbit/sender.cc +++ b/vowpalwabbit/sender.cc @@ -23,6 +23,7 @@ #include "vw.h" using namespace std; +using namespace LEARNER; namespace SENDER { struct sender { @@ -69,9 +70,8 @@ void receive_result(sender& s) return_simple_example(*(s.all), NULL, ec); } - void learn(void* d, learner& base, example* ec) + void learn(sender* s, learner& base, example* ec) { - sender* s = (sender*)d; if (s->received_index + s->all->p->ring_size - 1 == s->sent_index) receive_result(*s); @@ -84,33 +84,31 @@ void receive_result(sender& s) } // placeholder - void predict(void* d, learner& base, example* ec) + void predict(sender* d, learner& base, example* ec) { learn(d, base, ec); } - void finish_example(vw& all, void*, example*ec) + void finish_example(vw& all, sender*, example*ec) {} -void end_examples(void* d) +void end_examples(sender* s) { - sender* s = (sender*)d; //close our outputs to signal finishing. while (s->received_index != s->sent_index) receive_result(*s); shutdown(s->buf->files[0],SHUT_WR); } - void finish(void* d) + void finish(sender* s) { - sender* s = (sender*)d; s->buf->files.delete_v(); s->buf->space.delete_v(); free(s->delay_ring); delete s->buf; } - void save_load(void*, io_buf& io, bool read, bool text){} + void save_load(sender*, io_buf& io, bool read, bool text){} learner* setup(vw& all, po::variables_map& vm, vector<string> pairs) { @@ -125,10 +123,10 @@ void end_examples(void* d) s->all = &all; s->delay_ring = (example**) calloc(all.p->ring_size, sizeof(example*)); - learner* l = new learner(s, learn, predict, save_load, 1); - l->set_finish(finish); - l->set_finish_example(finish_example); - l->set_end_examples(end_examples); + learner* l = new learner(s, tlearn<sender, learn>, tlearn<sender, predict>, tsl<sender, save_load>, 1); + l->set_finish<sender, finish>(); + l->set_finish_example(tend_example<sender, finish_example>); + l->set_end_examples(tfunc<sender, end_examples>); return l; } |