FileBundle::ListPtr FileBundle::filter_bundles(const fwk::FileList::Ptr & files) { FileBundle::ListPtr bundles(new FileBundle::List()); FileBundle::Ptr current_bundle; std::string current_base; files->sort(); std::for_each(files->cbegin(), files->cend(), [¤t_base, &bundles, ¤t_bundle] (const std::string & f) { std::string basename = fwk::path_stem(f); if(basename != current_base) { FileBundle::Ptr new_bundle(new FileBundle()); if(new_bundle->add(f)) { bundles->push_back(new_bundle); current_bundle = new_bundle; current_base = basename; } } else { current_bundle->add(f); } } ); return bundles; }
//------------------------------------------------------------------------------------- bool Witness::sendToClient(const Mercury::MessageHandler& msgHandler, Mercury::Bundle* pBundle) { bundles().push_back(pBundle); return true; }