store: now opening stores

This commit is contained in:
Leo Balduf 2016-02-16 21:47:40 +01:00 committed by Jimmy Zelinskie
parent 1dab3978fb
commit 1a4ecb133f
3 changed files with 26 additions and 14 deletions

View file

@ -36,13 +36,10 @@ func RegisterClientStoreDriver(name string, driver ClientStoreDriver) {
} }
// OpenClientStore returns a ClientStore specified by a configuration. // OpenClientStore returns a ClientStore specified by a configuration.
func OpenClientStore(name string, cfg *Config) (ClientStore, error) { func OpenClientStore(cfg *Config) (ClientStore, error) {
driver, ok := clientStoreDrivers[name] driver, ok := clientStoreDrivers[cfg.ClientStore]
if !ok { if !ok {
return nil, fmt.Errorf( return nil, fmt.Errorf("store: unknown driver %q (forgotten import?)", cfg.ClientStore)
"store: unknown driver %q (forgotten import?)",
name,
)
} }
return driver.New(cfg) return driver.New(cfg)

View file

@ -49,13 +49,10 @@ func RegisterPeerStoreDriver(name string, driver PeerStoreDriver) {
} }
// OpenPeerStore returns a PeerStore specified by a configuration. // OpenPeerStore returns a PeerStore specified by a configuration.
func OpenPeerStore(name string, cfg *Config) (PeerStore, error) { func OpenPeerStore(cfg *Config) (PeerStore, error) {
driver, ok := peerStoreDrivers[name] driver, ok := peerStoreDrivers[cfg.PeerStore]
if !ok { if !ok {
return nil, fmt.Errorf( return nil, fmt.Errorf("storage: unknown driver %q (forgotten import?)", cfg.PeerStore)
"storage: unknown driver %q (forgotten import?)",
name,
)
} }
return driver.New(cfg) return driver.New(cfg)

View file

@ -30,9 +30,27 @@ func constructor(srvcfg *config.ServerConfig, tkr *tracker.Tracker) (server.Serv
return nil, errors.New("store: invalid store config: " + err.Error()) return nil, errors.New("store: invalid store config: " + err.Error())
} }
cs, err := OpenClientStore(cfg)
if err != nil {
return nil, err
}
ps, err := OpenPeerStore(cfg)
if err != nil {
return nil, err
}
ips, err := OpenIPStore(cfg)
if err != nil {
return nil, err
}
theStore = &Store{ theStore = &Store{
cfg: cfg, cfg: cfg,
tkr: tkr, tkr: tkr,
ClientStore: cs,
PeerStore: ps,
IPStore: ips,
} }
} }
return theStore, nil return theStore, nil