1
0
Fork 0
burlesque/storage.go

50 lines
780 B
Go

package main
import (
"strconv"
"strings"
"bitbucket.org/ww/cabinet"
)
type (
message []byte
key []byte
)
var (
storage = cabinet.New()
)
func newKey(queue string, index uint) key {
istr := strconv.FormatUint(uint64(index), 10)
k := strings.Join([]string{queue, istr}, "_")
return key(k)
}
func setupStorage() {
err := storage.Open(config.storage, cabinet.KCOWRITER|cabinet.KCOCREATE)
if err != nil {
alert(err, "Failed to open database '%s'", config.storage)
}
}
func closeStorage() {
var err error
err = storage.Sync(true)
if err != nil {
alert(err, "Failed to sync storage (hard)")
} else {
log("Storage synchronized")
}
err = storage.Close()
if err != nil {
alert(err, "Failed to close storage")
} else {
log("Storage closed")
}
}