lib/model: Create folders via newFolder

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4329
This commit is contained in:
Simon Frei
2017-08-25 19:47:01 +00:00
committed by Audrius Butkevicius
parent c7221b035d
commit ddf6d64faa
3 changed files with 20 additions and 29 deletions

View File

@@ -9,10 +9,13 @@ package model
import ( import (
"context" "context"
"time" "time"
"github.com/syncthing/syncthing/lib/config"
) )
type folder struct { type folder struct {
stateTracker stateTracker
config.FolderConfiguration
scan folderScanner scan folderScanner
model *Model model *Model
@@ -21,9 +24,23 @@ type folder struct {
initialScanFinished chan struct{} initialScanFinished chan struct{}
} }
func (f *folder) IndexUpdated() { func newFolder(model *Model, cfg config.FolderConfiguration) folder {
ctx, cancel := context.WithCancel(context.Background())
return folder{
stateTracker: newStateTracker(cfg.ID),
FolderConfiguration: cfg,
scan: newFolderScanner(cfg),
ctx: ctx,
cancel: cancel,
model: model,
initialScanFinished: make(chan struct{}),
}
} }
func (f *folder) IndexUpdated() {
}
func (f *folder) DelayScan(next time.Duration) { func (f *folder) DelayScan(next time.Duration) {
f.scan.Delay(next) f.scan.Delay(next)
} }

View File

@@ -7,7 +7,6 @@
package model package model
import ( import (
"context"
"fmt" "fmt"
"github.com/syncthing/syncthing/lib/config" "github.com/syncthing/syncthing/lib/config"
@@ -21,23 +20,10 @@ func init() {
type sendOnlyFolder struct { type sendOnlyFolder struct {
folder folder
config.FolderConfiguration
} }
func newSendOnlyFolder(model *Model, cfg config.FolderConfiguration, _ versioner.Versioner, _ fs.Filesystem) service { func newSendOnlyFolder(model *Model, cfg config.FolderConfiguration, _ versioner.Versioner, _ fs.Filesystem) service {
ctx, cancel := context.WithCancel(context.Background()) return &sendOnlyFolder{folder: newFolder(model, cfg)}
return &sendOnlyFolder{
folder: folder{
stateTracker: newStateTracker(cfg.ID),
scan: newFolderScanner(cfg),
ctx: ctx,
cancel: cancel,
model: model,
initialScanFinished: make(chan struct{}),
},
FolderConfiguration: cfg,
}
} }
func (f *sendOnlyFolder) Serve() { func (f *sendOnlyFolder) Serve() {

View File

@@ -7,7 +7,6 @@
package model package model
import ( import (
"context"
"errors" "errors"
"fmt" "fmt"
"math/rand" "math/rand"
@@ -81,7 +80,6 @@ type dbUpdateJob struct {
type sendReceiveFolder struct { type sendReceiveFolder struct {
folder folder
config.FolderConfiguration
fs fs.Filesystem fs fs.Filesystem
versioner versioner.Versioner versioner versioner.Versioner
@@ -98,18 +96,8 @@ type sendReceiveFolder struct {
} }
func newSendReceiveFolder(model *Model, cfg config.FolderConfiguration, ver versioner.Versioner, fs fs.Filesystem) service { func newSendReceiveFolder(model *Model, cfg config.FolderConfiguration, ver versioner.Versioner, fs fs.Filesystem) service {
ctx, cancel := context.WithCancel(context.Background())
f := &sendReceiveFolder{ f := &sendReceiveFolder{
folder: folder{ folder: newFolder(model, cfg),
stateTracker: newStateTracker(cfg.ID),
scan: newFolderScanner(cfg),
ctx: ctx,
cancel: cancel,
model: model,
initialScanFinished: make(chan struct{}),
},
FolderConfiguration: cfg,
fs: fs, fs: fs,
versioner: ver, versioner: ver,