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