1 #pragma once 2 3 #include "pages.h" 4 5 6 7 /* A page collection where the pages are "conserved", meaning that they are not 8 queued for reuse unless they are completely unused. */ 9 10 class PagesConserving : public Pages 11 { 12 public: 13 explicit PagesConserving(Memory *memory); 14 15 explicit PagesConserving(); 16 17 /* Specialised methods. */ 18 19 virtual Flexpage *flexpage(); 20 21 virtual void queue(PageOwner *owner, Flexpage *flexpage); 22 23 virtual bool reserve(PageOwner *owner, Flexpage *flexpage); 24 25 /* Memory control methods. */ 26 27 virtual bool decrease(offset_t size); 28 29 virtual bool increase(offset_t size); 30 }; 31 32 // vim: tabstop=4 expandtab shiftwidth=4