1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/generic/accessor.h Fri Apr 02 01:27:50 2021 +0200
1.3 @@ -0,0 +1,42 @@
1.4 +#pragma once
1.5 +
1.6 +#include "flexpage.h"
1.7 +
1.8 +/* A file accessor, providing flexpages corresponding to file regions. */
1.9 +
1.10 +class Accessor
1.11 +{
1.12 +protected:
1.13 + offset_t _size;
1.14 +
1.15 + /* Data transfer helper methods. */
1.16 +
1.17 + virtual void fill_populated(Flexpage *flexpage);
1.18 +
1.19 + virtual void flush_populated(Flexpage *flexpage);
1.20 +
1.21 +public:
1.22 + fileid_t fileid;
1.23 +
1.24 + explicit Accessor(fileid_t fileid, offset_t size=0);
1.25 +
1.26 + virtual ~Accessor()
1.27 + {
1.28 + }
1.29 +
1.30 + virtual offset_t get_size();
1.31 +
1.32 + virtual void set_size(offset_t size);
1.33 +
1.34 + virtual void close();
1.35 +
1.36 + virtual void open();
1.37 +
1.38 + /* Data transfer methods. */
1.39 +
1.40 + virtual void fill(Flexpage *flexpage);
1.41 +
1.42 + virtual void flush(Flexpage *flexpage);
1.43 +};
1.44 +
1.45 +// vim: tabstop=4 expandtab shiftwidth=4