mirror of
https://github.com/NixOS/nix.git
synced 2025-11-27 12:41:00 +01:00
Separate store configs from the implems
Rework the `Store` hierarchy so that there's now one hierarchy for the
store configs and one for the implementations (where each implementation
extends the corresponding config). So a class hierarchy like
```
StoreConfig-------->Store
| |
v v
SubStoreConfig----->SubStore
| |
v v
SubSubStoreConfig-->SubSubStore
```
(with virtual inheritance to prevent DDD).
The advantage of this architecture is that we can now introspect the configuration of a store without having to instantiate the store itself
This commit is contained in:
parent
aa4eac3788
commit
22afa8fb4d
13 changed files with 120 additions and 83 deletions
|
|
@ -2,6 +2,8 @@
|
|||
|
||||
namespace nix {
|
||||
|
||||
struct DummyStoreConfig : StoreConfig {};
|
||||
|
||||
struct DummyStore : public Store
|
||||
{
|
||||
DummyStore(const std::string uri, const Params & params)
|
||||
|
|
@ -54,6 +56,6 @@ struct DummyStore : public Store
|
|||
{ unsupported("buildDerivation"); }
|
||||
};
|
||||
|
||||
static RegisterStoreImplementation<DummyStore> regStore;
|
||||
static RegisterStoreImplementation<DummyStore, DummyStoreConfig> regStore;
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue