1 #pragma once 2 3 #include "page_collection.h" 4 #include "page_queue_partitioned.h" 5 6 7 8 /* A page collection where the pages are "conserved", meaning that they are not 9 queued for reuse unless they are completely unused. */ 10 11 class PagesConserving : public PageCollection 12 { 13 protected: 14 PageQueuePartitioned _page_queue; 15 16 public: 17 explicit PagesConserving(Memory *memory); 18 19 explicit PagesConserving(); 20 21 /* Specialised methods. */ 22 23 virtual 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