1 #pragma once 2 3 #include "flexpage.h" 4 #include "memory.h" 5 #include "page_owner.h" 6 #include "page_queue.h" 7 8 9 10 /* A page collection. */ 11 12 class PageCollection 13 { 14 protected: 15 PageQueue *_queue; 16 Memory *_memory; 17 18 public: 19 explicit PageCollection(Memory *memory); 20 21 explicit PageCollection(); 22 23 virtual ~PageCollection() 24 { 25 } 26 27 virtual Flexpage *remove(); 28 29 virtual bool reserve(PageOwner *owner, Flexpage *flexpage); 30 31 virtual Flexpage *flexpage(); 32 33 virtual void queue(PageOwner *owner, Flexpage *flexpage); 34 35 virtual void release(Flexpage *flexpage); 36 }; 37 38 // vim: tabstop=4 expandtab shiftwidth=4