MCPcopy
hub / github.com/syncthing/syncthing / newSendReceiveFolder

Function newSendReceiveFolder

lib/model/folder_sendrecv.go:136–160  ·  view source on GitHub ↗
(model *model, ignores *ignore.Matcher, cfg config.FolderConfiguration, ver versioner.Versioner, evLogger events.Logger, ioLimiter *semaphore.Semaphore)

Source from the content-addressed store, hash-verified

134}
135
136func newSendReceiveFolder(model *model, ignores *ignore.Matcher, cfg config.FolderConfiguration, ver versioner.Versioner, evLogger events.Logger, ioLimiter *semaphore.Semaphore) service {
137 f := &sendReceiveFolder{
138 folder: newFolder(model, ignores, cfg, evLogger, ioLimiter, ver),
139 queue: newJobQueue(),
140 blockPullReorderer: newBlockPullReorderer(cfg.BlockPullOrder, model.id, cfg.DeviceIDs()),
141 writeLimiter: semaphore.New(cfg.MaxConcurrentWrites),
142 }
143 f.puller = f
144
145 if f.Copiers == 0 {
146 f.Copiers = defaultCopiers
147 }
148
149 // If the configured max amount of pending data is zero, we use the
150 // default. If it's configured to something non-zero but less than the
151 // protocol block size we adjust it upwards accordingly.
152 if f.PullerMaxPendingKiB == 0 {
153 f.PullerMaxPendingKiB = defaultPullerPendingKiB
154 }
155 if blockSizeKiB := protocol.MaxBlockSize / 1024; f.PullerMaxPendingKiB < blockSizeKiB {
156 f.PullerMaxPendingKiB = blockSizeKiB
157 }
158
159 return f
160}
161
162// pull returns true if it manages to get all needed items from peers, i.e. get
163// the device in sync with the global state.

Callers 2

newReceiveOnlyFolderFunction · 0.85

Calls 5

NewFunction · 0.92
newFolderFunction · 0.85
newJobQueueFunction · 0.85
newBlockPullReordererFunction · 0.85
DeviceIDsMethod · 0.80

Tested by

no test coverage detected