// Copyright (c) 2013-2014 Conformal Systems LLC. // Use of this source code is governed by an ISC // license that can be found in the LICENSE file. package memdb import ( "fmt" "github.com/conformal/btcdb" "github.com/conformal/btclog" ) var log = btclog.Disabled func init() { driver := btcdb.DriverDB{DbType: "memdb", CreateDB: CreateDB, OpenDB: OpenDB} btcdb.AddDBDriver(driver) } // parseArgs parses the arguments from the btcdb Open/Create methods. func parseArgs(funcName string, args ...interface{}) error { if len(args) != 0 { return fmt.Errorf("memdb.%s does not accept any arguments", funcName) } return nil } // OpenDB opens an existing database for use. func OpenDB(args ...interface{}) (btcdb.Db, error) { if err := parseArgs("OpenDB", args...); err != nil { return nil, err } // A memory database is not persistent, so let CreateDB handle it. return CreateDB() } // CreateDB creates, initializes, and opens a database for use. func CreateDB(args ...interface{}) (btcdb.Db, error) { if err := parseArgs("CreateDB", args...); err != nil { return nil, err } log = btcdb.GetLog() return newMemDb(), nil }