type NewPiecesStorageOpts struct {
NewPoolOpts
- ProvOpts func(*ProviderOpts)
- storage.ResourcePiecesOpts
+ ProvOpts func(*ProviderOpts)
+ StorageOpts func(*storage.ResourcePiecesOpts)
}
// A convenience function that creates a connection pool, resource provider, and a pieces storage
conns.Close()
return
}
- store := storage.NewResourcePiecesOpts(prov, opts.ResourcePiecesOpts)
+ storageOpts := storage.ResourcePiecesOpts{
+ NoSizedPuts: provOpts.NoConcurrentBlobReads,
+ }
+ if f := opts.StorageOpts; f != nil {
+ f(&storageOpts)
+ }
+ store := storage.NewResourcePiecesOpts(prov, storageOpts)
return struct {
storage.ClientImpl
io.Closer
testClientTransferSmallCache(t, false, -1)
}
-func sqliteClientStorageFactory(connOptsMaker func(dataDir string) sqliteStorage.NewPoolOpts) storageFactory {
+func sqliteClientStorageFactory(optsMaker func(dataDir string) sqliteStorage.NewPiecesStorageOpts) storageFactory {
return func(dataDir string) storage.ClientImplCloser {
- connOpts := connOptsMaker(dataDir)
- //log.Printf("opening sqlite db: %#v", connOpts)
- ret, err := sqliteStorage.NewPiecesStorage(sqliteStorage.NewPiecesStorageOpts{NewPoolOpts: connOpts})
+ opts := optsMaker(dataDir)
+ //log.Printf("opening sqlite db: %#v", opts)
+ ret, err := sqliteStorage.NewPiecesStorage(opts)
if err != nil {
panic(err)
}
Wrapper: fileCachePieceResourceStorage,
})},
{"Boltdb", storage.NewBoltDB},
- {"SqliteFile", sqliteClientStorageFactory(func(dataDir string) sqliteStorage.NewPoolOpts {
- return sqliteStorage.NewPoolOpts{
- Path: filepath.Join(dataDir, "sqlite.db"),
+ {"SqliteFile", sqliteClientStorageFactory(func(dataDir string) sqliteStorage.NewPiecesStorageOpts {
+ return sqliteStorage.NewPiecesStorageOpts{
+ NewPoolOpts: sqliteStorage.NewPoolOpts{
+ Path: filepath.Join(dataDir, "sqlite.db"),
+ },
}
})},
- {"SqliteMemory", sqliteClientStorageFactory(func(dataDir string) sqliteStorage.NewPoolOpts {
- return sqliteStorage.NewPoolOpts{
- Memory: true,
+ {"SqliteMemory", sqliteClientStorageFactory(func(dataDir string) sqliteStorage.NewPiecesStorageOpts {
+ return sqliteStorage.NewPiecesStorageOpts{
+ NewPoolOpts: sqliteStorage.NewPoolOpts{
+ Memory: true,
+ },
}
})},
} {