36 lines
513 B
Go
36 lines
513 B
Go
package shortify
|
|
|
|
import (
|
|
"sync"
|
|
|
|
"go.etcd.io/bbolt"
|
|
)
|
|
|
|
// Global instance
|
|
var (
|
|
Global *Shortener
|
|
once sync.Once
|
|
)
|
|
|
|
func Init(cfg Config) error {
|
|
var err error
|
|
once.Do(func() {
|
|
Global, err = NewShortener(cfg)
|
|
})
|
|
return err
|
|
}
|
|
|
|
// Global instance (duc)
|
|
var (
|
|
GlobalIDPool *IDPool
|
|
oncePopper sync.Once
|
|
)
|
|
|
|
func InitIDPool(db *bbolt.DB, idLen, poolCap, regenThresh int) error {
|
|
var err error
|
|
oncePopper.Do(func() {
|
|
GlobalIDPool, err = NewIDPool(db, idLen, poolCap, regenThresh)
|
|
})
|
|
return err
|
|
}
|