# # # patch "ChangeLog" # from [6328f3b56c4539c9bcaf0d0e6b55c5ac23a5422e] # to [70749a4a0987457094836663ce16ac1fd3a482b3] # # patch "roster_delta.cc" # from [555ee6a8d7ffc2aeacd4decfdf067487b2832b77] # to [e55ee69820c741d7ef44e8f2bfb094a2898bdebb] # ============================================================ --- ChangeLog 6328f3b56c4539c9bcaf0d0e6b55c5ac23a5422e +++ ChangeLog 70749a4a0987457094836663ce16ac1fd3a482b3 @@ -1,3 +1,8 @@ +2007-02-09 Thomas Moschny + + * roster_delta.cc (get_roster_delta): Factor out the code for + fetching and parsing a roster delta. + 2007-02-06 Thomas Moschny * roster_delta.cc (get_content_from_roster_delta): Added a missing ============================================================ --- roster_delta.cc 555ee6a8d7ffc2aeacd4decfdf067487b2832b77 +++ roster_delta.cc e55ee69820c741d7ef44e8f2bfb094a2898bdebb @@ -475,6 +475,16 @@ delta_rosters(roster_t const & from, mar del = roster_delta(printer.buf); } +static +void get_roster_delta(roster_delta const & del, + roster_delta_t & d) +{ + basic_io::input_source src(del.inner()(), "roster_delta"); + basic_io::tokenizer tok(src); + basic_io::parser pars(tok); + parse_roster_delta_t(pars, d); +} + void apply_roster_delta(roster_delta const & del, roster_t & roster, marking_map & markings) @@ -483,11 +493,8 @@ apply_roster_delta(roster_delta const & MM(roster); MM(markings); - basic_io::input_source src(del.inner()(), "roster_delta"); - basic_io::tokenizer tok(src); - basic_io::parser pars(tok); roster_delta_t d; - parse_roster_delta_t(pars, d); + get_roster_delta(del, d); d.apply(roster, markings); } @@ -498,12 +505,8 @@ get_markings_from_roster_delta(roster_de node_id const & nid, marking_t & markings) { - // FIXME: factor out this block - basic_io::input_source src(del.inner()(), "roster_delta"); - basic_io::tokenizer tok(src); - basic_io::parser pars(tok); roster_delta_t d; - parse_roster_delta_t(pars, d); + get_roster_delta(del, d); std::map::iterator i = d.markings_changed.find(nid); if (i != d.markings_changed.end()) @@ -524,13 +527,9 @@ get_content_from_roster_delta(roster_del node_id const & nid, file_id & content) { - // FIXME: factor out this block - basic_io::input_source src(del.inner()(), "roster_delta"); - basic_io::tokenizer tok(src); - basic_io::parser pars(tok); roster_delta_t d; - parse_roster_delta_t(pars, d); - + get_roster_delta(del, d); + roster_delta_t::deltas_applied_t::const_iterator i = d.deltas_applied.find(nid); if (i != d.deltas_applied.end()) {