1.1 --- a/pages.h Sat Mar 27 01:42:25 2021 +0100
1.2 +++ b/pages.h Sat Mar 27 22:12:12 2021 +0100
1.3 @@ -1,21 +1,38 @@
1.4 #pragma once
1.5
1.6 -#include "page_collection.h"
1.7 -#include "page_queue_shared.h"
1.8 +#include "flexpage.h"
1.9 +#include "memory.h"
1.10 +#include "page_owner.h"
1.11 +#include "page_queue.h"
1.12
1.13
1.14
1.15 /* A page collection. */
1.16
1.17 -class Pages : public PageCollection
1.18 +class Pages
1.19 {
1.20 protected:
1.21 - PageQueueShared _page_queue;
1.22 + Memory *_memory;
1.23 + PageQueue *_queue;
1.24
1.25 public:
1.26 - explicit Pages(Memory *memory);
1.27 + explicit Pages(Memory *memory, PageQueue *queue);
1.28 +
1.29 + explicit Pages(PageQueue *queue);
1.30 +
1.31 + virtual ~Pages()
1.32 + {
1.33 + }
1.34
1.35 - explicit Pages();
1.36 + virtual Flexpage *remove();
1.37 +
1.38 + virtual bool reserve(PageOwner *owner, Flexpage *flexpage);
1.39 +
1.40 + virtual Flexpage *flexpage();
1.41 +
1.42 + virtual void queue(PageOwner *owner, Flexpage *flexpage);
1.43 +
1.44 + virtual void release(Flexpage *flexpage);
1.45 };
1.46
1.47 // vim: tabstop=4 expandtab shiftwidth=4