]> Sergey Matveev's repositories - btrtrc.git/blobdiff - storage/sqlite/direct.go
Switch to github.com/go-llsqlite/adapter
[btrtrc.git] / storage / sqlite / direct.go
index fe5b27016a62267182b8327187eadff17d2177e7..8e0a4a8d4e435be70cf4d381b3b0b1966b27fef5 100644 (file)
@@ -6,7 +6,6 @@ package sqliteStorage
 import (
        "io"
 
-       "crawshaw.io/sqlite"
        "github.com/anacrolix/squirrel"
 
        "github.com/anacrolix/torrent/metainfo"
@@ -26,12 +25,19 @@ func NewDirectStorage(opts NewDirectStorageOpts) (_ storage.ClientImplCloser, er
        }, nil
 }
 
+func NewWrappingClient(cache *squirrel.Cache) storage.ClientImpl {
+       return &client{
+               cache,
+               cache.GetCapacity,
+       }
+}
+
 type client struct {
        *squirrel.Cache
-       capacity func() *int64
+       capacity func() (int64, bool)
 }
 
-func (c *client) OpenTorrent(info *metainfo.Info, infoHash metainfo.Hash) (storage.TorrentImpl, error) {
+func (c *client) OpenTorrent(*metainfo.Info, metainfo.Hash) (storage.TorrentImpl, error) {
        t := torrent{c.Cache}
        return storage.TorrentImpl{Piece: t.Piece, Close: t.Close, Capacity: &c.capacity}, nil
 }
@@ -68,12 +74,10 @@ func (p piece) MarkNotComplete() error {
 }
 
 func (p piece) Completion() (ret storage.Completion) {
-       err := p.sb.GetTag("verified", func(stmt *sqlite.Stmt) {
+       err := p.sb.GetTag("verified", func(stmt squirrel.SqliteStmt) {
                ret.Complete = stmt.ColumnInt(0) != 0
        })
        ret.Ok = err == nil
-       if err != nil {
-               panic(err)
-       }
+       ret.Err = err
        return
 }