This commit is contained in:
Bel LaPointe
2019-03-14 11:12:08 -06:00
parent 97b53aab90
commit 10e02bac31
2 changed files with 60 additions and 3 deletions

31
db.go
View File

@@ -1,6 +1,9 @@
package storage
import "strings"
import (
"fmt"
"strings"
)
type DB interface {
Get(string) ([]byte, error)
@@ -53,6 +56,28 @@ func TypeFromString(key string) Type {
return Type(-1)
}
func New(key Type) (DB, error) {
return nil, ErrNotImpl
func New(key Type, params ...string) (db DB, err error) {
defer func() {
if i := recover(); i != nil {
err = fmt.Errorf("panic making %s: %v", key, i)
}
}()
err = ErrNotImpl
switch key {
case MAP:
db = NewMap()
case BOLT:
db, err = NewBolt(params[0])
case CACHE:
db, err = NewCache(params...)
case LEVELDB:
db, err = NewLevelDB(params[0])
case MEMCACHE:
db, err = NewMemcache(params[0], params[1:]...)
case MEMCACHECLUSTER:
db, err = NewMemcacheCluster(params[0], params[1:]...)
case MONGO:
db, err = NewMongo(params[0], params[1:]...)
}
return
}