paul@12 | 1 | #pragma once |
paul@12 | 2 | |
paul@12 | 3 | #include <map> |
paul@12 | 4 | |
paul@12 | 5 | #include "opener_resource.h" |
paul@12 | 6 | |
paul@12 | 7 | |
paul@12 | 8 | |
paul@12 | 9 | /* Collection types. */ |
paul@12 | 10 | |
paul@12 | 11 | typedef std::map<fileid_t, const char *> FilePaths; |
paul@12 | 12 | typedef std::pair<fileid_t, const char *> FilePathEntry; |
paul@12 | 13 | |
paul@12 | 14 | |
paul@12 | 15 | |
paul@12 | 16 | /* Support for providing access to files. */ |
paul@12 | 17 | |
paul@12 | 18 | class HostFileOpener : public OpenerResource |
paul@12 | 19 | { |
paul@12 | 20 | protected: |
paul@12 | 21 | FilePaths _paths; |
paul@12 | 22 | |
paul@12 | 23 | /* Configurable methods. */ |
paul@12 | 24 | |
paul@12 | 25 | virtual fileid_t get_fileid(const char *path); |
paul@12 | 26 | |
paul@12 | 27 | virtual Accessor *make_accessor(fileid_t fileid); |
paul@12 | 28 | |
paul@12 | 29 | public: |
paul@78 | 30 | explicit HostFileOpener(Paging *paging, Pages *pages) |
paul@78 | 31 | : OpenerResource(paging, pages) |
paul@12 | 32 | { |
paul@12 | 33 | } |
paul@12 | 34 | }; |
paul@12 | 35 | |
paul@12 | 36 | // vim: tabstop=4 expandtab shiftwidth=4 |