1 #pragma once 2 3 #include <map> 4 #include <mutex> 5 6 #include "accessor.h" 7 8 9 10 /* Mapping type from file identifiers to accessors. */ 11 12 typedef std::map<fileid_t, Accessor *> FileMapping; 13 typedef std::pair<fileid_t, Accessor *> FileMappingEntry; 14 15 16 17 /* A registry of accessors for files. */ 18 19 class Accessing 20 { 21 protected: 22 FileMapping _accessors; 23 std::mutex _lock; 24 25 public: 26 bool reserve(fileid_t fileid); 27 28 Accessor *get(fileid_t fileid); 29 30 void set(fileid_t fileid, Accessor *accessor); 31 }; 32 33 // vim: tabstop=4 expandtab shiftwidth=4