14 #ifndef INCLUDED_core_fragment_picking_old_concepts_Librarian_hh
15 #define INCLUDED_core_fragment_picking_old_concepts_Librarian_hh
36 #include <utility/vector1.fwd.hh>
37 #include <utility/pointer/owning_ptr.fwd.hh>
41 namespace picking_old {
46 template<
typename Bookmark,
typename ExtentEvaluator,
typename ExtentGenerator,
typename Library >
63 typedef typename ExtentGenerator::Extent
Extent;
117 return catalog( library, std::less< Bookmark >() );
124 template<
typename LessThan >
126 using std::push_heap;
127 using std::sort_heap;
136 for (
PageConstIterator page = book->begin(), end_of_book = book->end(); page != end_of_book; ++page ) {
139 for (
typename ExtentGenOPs::const_iterator e =
egen_.begin(), ee =
egen_.end(); e != ee; ++e ) {
140 Extent const extent = (**e)( page, end_of_book );
142 if ( extent.valid ) {
167 egen_.push_back( gen->clone() );
184 eeval_.push_back( val->clone() );
203 bool extent_allowed =
true;
205 for (
typename ExtentEvalOPs::iterator i =
eeval_.begin(), ie =
eeval_.end(); extent_allowed && i != ie; ++i ) {
206 extent_allowed = extent_allowed && (**i)( extent, mark );
209 return extent_allowed;
274 Librarian<core::fragment::picking_old::vall::scores::VallFragmentScore,
275 core::fragment::picking_old::vall::eval::VallFragmentEval,
276 core::fragment::picking_old::vall::gen::VallFragmentGen,
277 core::fragment::picking_old::vall::VallLibrary> {};