1.1 --- a/files/pipe_paging.h Wed Mar 24 23:44:53 2021 +0100
1.2 +++ b/files/pipe_paging.h Thu Mar 25 01:42:50 2021 +0100
1.3 @@ -3,6 +3,8 @@
1.4 #include <list>
1.5
1.6 #include "page_mapper.h"
1.7 +#include "pages_conserving.h"
1.8 +#include "pipe_accessor.h"
1.9
1.10 /* Pipe paging support, maintaining the sequence of active regions or sections
1.11 in a pipe. */
1.12 @@ -10,16 +12,33 @@
1.13 class PipePaging
1.14 {
1.15 protected:
1.16 + PagesConserving _pages;
1.17 +
1.18 + /* Regions acting as files with their own accessors. */
1.19 +
1.20 std::list<PageMapper *> _regions;
1.21 + std::list<PipeAccessor> _accessors;
1.22 +
1.23 + /* Pipe section/region size. */
1.24 +
1.25 + offset_t _size;
1.26
1.27 public:
1.28 - explicit PipePaging();
1.29 + explicit PipePaging(offset_t size);
1.30
1.31 virtual void add_region(PageMapper *mapper);
1.32
1.33 virtual PageMapper *first_region();
1.34
1.35 virtual PageMapper *next_region();
1.36 +
1.37 + virtual PipeAccessor *accessor();
1.38 +
1.39 + virtual PagesConserving *pages()
1.40 + { return &_pages; }
1.41 +
1.42 + virtual offset_t region_size()
1.43 + { return _size; }
1.44 };
1.45
1.46 // vim: tabstop=4 expandtab shiftwidth=4