1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/accessing.h Sun Jan 24 19:29:07 2021 +0100
1.3 @@ -0,0 +1,33 @@
1.4 +#pragma once
1.5 +
1.6 +#include <map>
1.7 +#include <mutex>
1.8 +
1.9 +#include "accessor.h"
1.10 +
1.11 +
1.12 +
1.13 +/* Mapping type from file identifiers to accessors. */
1.14 +
1.15 +typedef std::map<fileid_t, Accessor *> FileMapping;
1.16 +typedef std::pair<fileid_t, Accessor *> FileMappingEntry;
1.17 +
1.18 +
1.19 +
1.20 +/* A registry of accessors for files. */
1.21 +
1.22 +class Accessing
1.23 +{
1.24 +protected:
1.25 + FileMapping _accessors;
1.26 + std::mutex _lock;
1.27 +
1.28 +public:
1.29 + bool reserve(fileid_t fileid);
1.30 +
1.31 + Accessor *get(fileid_t fileid);
1.32 +
1.33 + void set(fileid_t fileid, Accessor *accessor);
1.34 +};
1.35 +
1.36 +// vim: tabstop=4 expandtab shiftwidth=4