1 #pragma once 2 3 #include <mutex> 4 5 #include "flexpage.h" 6 7 /* A file accessor, providing flexpages corresponding to file regions. */ 8 9 class Accessor 10 { 11 protected: 12 offset_t _size; 13 14 public: 15 fileid_t fileid; 16 17 explicit Accessor(fileid_t fileid, offset_t size=0); 18 19 virtual offset_t get_size(); 20 21 virtual void close(); 22 23 virtual void open(); 24 25 /* Data transfer methods. */ 26 27 virtual void fill(Flexpage *flexpage) = 0; 28 29 virtual void flush(Flexpage *flexpage) = 0; 30 }; 31 32 // vim: tabstop=4 expandtab shiftwidth=4