mirror of
https://github.com/sot-tech/mochi.git
synced 2026-05-14 05:38:36 -07:00
store: now opening stores
This commit is contained in:
committed by
Jimmy Zelinskie
parent
1dab3978fb
commit
1a4ecb133f
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user