# HG changeset patch # User Paul Boddie # Date 1641320521 -3600 # Node ID 4bbc322d2b94df24828ec2c40e722c17e3b2412e # Parent ac82aa98be4f037b666a5aea4f3c9d3e17ec6e98 Changed the mapping to use Provider instead of Accountable. diff -r ac82aa98be4f -r 4bbc322d2b94 libfsserver/include/fsserver/provider_registry.h --- a/libfsserver/include/fsserver/provider_registry.h Fri Dec 31 00:56:25 2021 +0100 +++ b/libfsserver/include/fsserver/provider_registry.h Tue Jan 04 19:22:01 2022 +0100 @@ -25,14 +25,19 @@ #include #include -#include -/* Mapping type from file identifiers to page mappers. */ +/* Forward declaration. */ + +class Provider; + -typedef std::map FileMapping; -typedef std::pair FileMappingEntry; + +/* Mapping type from file identifiers to providers. */ + +typedef std::map ProviderMapping; +typedef std::pair ProviderMappingEntry; @@ -41,21 +46,21 @@ class ProviderRegistry { protected: - FileMapping _providers; + ProviderMapping _providers; std::mutex _lock; /* Filesystem object access. */ - Accountable *get(fileid_t fileid); + Provider *get(fileid_t fileid); - void remove(fileid_t fileid, Accountable *obj); + void remove(fileid_t fileid, Provider *obj); - void set(fileid_t fileid, Accountable *obj); + void set(fileid_t fileid, Provider *obj); public: /* Methods for resources. */ - void detach(fileid_t fileid, Accountable *mapper); + void detach(fileid_t fileid, Provider *mapper); }; // vim: tabstop=4 expandtab shiftwidth=4 diff -r ac82aa98be4f -r 4bbc322d2b94 libfsserver/lib/generic/provider_registry.cc --- a/libfsserver/lib/generic/provider_registry.cc Fri Dec 31 00:56:25 2021 +0100 +++ b/libfsserver/lib/generic/provider_registry.cc Tue Jan 04 19:22:01 2022 +0100 @@ -21,6 +21,10 @@ #include "provider_registry.h" +/* To complete forward declaration. */ + +#include "provider.h" + /* Methods for use with the lock already acquired. */ @@ -28,10 +32,10 @@ /* Return any registered provider for the given 'fileid' or NULL if no such provider is registered. */ -Accountable *ProviderRegistry::get(fileid_t fileid) +Provider *ProviderRegistry::get(fileid_t fileid) { - FileMapping::iterator entry = _providers.find(fileid); - Accountable *provider; + ProviderMapping::iterator entry = _providers.find(fileid); + Provider *provider; if (entry == _providers.end()) provider = NULL; @@ -43,7 +47,7 @@ /* Remove a provider and its resources for the given 'fileid'. */ -void ProviderRegistry::remove(fileid_t fileid, Accountable *provider) +void ProviderRegistry::remove(fileid_t fileid, Provider *provider) { _providers.erase(fileid); delete provider; @@ -51,9 +55,9 @@ /* Register a 'provider' for the given 'fileid'. */ -void ProviderRegistry::set(fileid_t fileid, Accountable *provider) +void ProviderRegistry::set(fileid_t fileid, Provider *provider) { - FileMapping::iterator entry = _providers.find(fileid); + ProviderMapping::iterator entry = _providers.find(fileid); if (entry != _providers.end()) return; @@ -65,7 +69,7 @@ /* Detach from a provider, potentially removing it from the registry. */ -void ProviderRegistry::detach(fileid_t fileid, Accountable *provider) +void ProviderRegistry::detach(fileid_t fileid, Provider *provider) { std::lock_guard guard(_lock);