1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/accessor.h Sat Jan 23 00:01:22 2021 +0100
1.3 @@ -0,0 +1,32 @@
1.4 +#pragma once
1.5 +
1.6 +#include <mutex>
1.7 +
1.8 +#include "flexpage.h"
1.9 +
1.10 +/* A file accessor, providing flexpages corresponding to file regions. */
1.11 +
1.12 +class Accessor
1.13 +{
1.14 +protected:
1.15 + offset_t _size;
1.16 +
1.17 +public:
1.18 + fileid_t fileid;
1.19 +
1.20 + explicit Accessor(fileid_t fileid, offset_t size=0);
1.21 +
1.22 + virtual offset_t get_size();
1.23 +
1.24 + virtual void close();
1.25 +
1.26 + virtual void open();
1.27 +
1.28 + /* Data transfer methods. */
1.29 +
1.30 + virtual void fill(Flexpage *flexpage) = 0;
1.31 +
1.32 + virtual void flush(Flexpage *flexpage) = 0;
1.33 +};
1.34 +
1.35 +// vim: tabstop=4 expandtab shiftwidth=4