1.1 --- a/page_queue.h Sun Mar 28 22:41:12 2021 +0200
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,50 +0,0 @@
1.4 -#pragma once
1.5 -
1.6 -#include <list>
1.7 -#include <map>
1.8 -
1.9 -#include "flexpage.h"
1.10 -#include "memory.h"
1.11 -#include "page_owner.h"
1.12 -
1.13 -
1.14 -
1.15 -/* Collection types. */
1.16 -
1.17 -typedef struct { Flexpage *flexpage; PageOwner *owner; } QueueEntry;
1.18 -typedef std::list<QueueEntry> Queue;
1.19 -
1.20 -typedef std::pair<Flexpage *, Queue::iterator> Position;
1.21 -typedef std::map<Flexpage *, Queue::iterator> Positions;
1.22 -
1.23 -
1.24 -
1.25 -/* A queue of managed pages. */
1.26 -
1.27 -class PageQueue
1.28 -{
1.29 -protected:
1.30 -
1.31 - /* Helper methods. */
1.32 -
1.33 - virtual void discard(Queue &queue, Memory *memory);
1.34 -
1.35 - virtual bool remove(Queue &queue, Positions &positions, PageOwner *owner, Flexpage *flexpage);
1.36 -
1.37 -public:
1.38 - virtual ~PageQueue()
1.39 - {
1.40 - }
1.41 -
1.42 - virtual void close(Memory *memory) = 0;
1.43 -
1.44 - virtual void pop(PageOwner **owner, Flexpage **flexpage) = 0;
1.45 -
1.46 - virtual void push(PageOwner *owner, Flexpage *flexpage) = 0;
1.47 -
1.48 - virtual void push_front(PageOwner *owner, Flexpage *flexpage) = 0;
1.49 -
1.50 - virtual bool remove(PageOwner *owner, Flexpage *flexpage) = 0;
1.51 -};
1.52 -
1.53 -// vim: tabstop=4 expandtab shiftwidth=4