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 Pages 13 { 14 protected: 15 Memory *_memory; 16 PageQueue *_queue; 17 18 public: 19 explicit Pages(Memory *memory, PageQueue *queue); 20 21 virtual ~Pages(); 22 23 virtual Flexpage *remove(); 24 25 virtual bool reserve(PageOwner *owner, Flexpage *flexpage); 26 27 virtual Flexpage *flexpage(); 28 29 virtual void queue(PageOwner *owner, Flexpage *flexpage); 30 31 virtual void release(Flexpage *flexpage); 32 }; 33 34 // vim: tabstop=4 expandtab shiftwidth=4