MCPcopy Index your code
hub / github.com/syncthing/syncthing / LocalChangedFolderFiles

Method LocalChangedFolderFiles

lib/model/model.go:1083–1123  ·  view source on GitHub ↗
(folder string, page, perpage int)

Source from the content-addressed store, hash-verified

1081}
1082
1083func (m *model) LocalChangedFolderFiles(folder string, page, perpage int) ([]protocol.FileInfo, error) {
1084 m.mut.RLock()
1085 _, ok := m.folderCfgs[folder]
1086 m.mut.RUnlock()
1087
1088 if !ok {
1089 return nil, ErrFolderMissing
1090 }
1091
1092 ros, err := m.sdb.CountReceiveOnlyChanged(folder)
1093 if err != nil {
1094 return nil, err
1095 }
1096 if ros.TotalItems() == 0 {
1097 return nil, nil
1098 }
1099
1100 p := newPager(page, perpage)
1101 files := make([]protocol.FileInfo, 0, perpage)
1102
1103 // This could be made more efficient with a specifically targeted DB
1104 // call
1105 it, errFn := m.sdb.AllLocalFiles(folder, protocol.LocalDeviceID)
1106 for f := range it {
1107 if !f.IsReceiveOnlyChanged() {
1108 continue
1109 }
1110 if p.skip() {
1111 continue
1112 }
1113 files = append(files, f)
1114 if p.done() {
1115 break
1116 }
1117 }
1118 if err := errFn(); err != nil {
1119 return nil, err
1120 }
1121
1122 return files, nil
1123}
1124
1125type pager struct {
1126 toSkip, get int

Callers

nothing calls this directly

Calls 7

newPagerFunction · 0.85
TotalItemsMethod · 0.80
skipMethod · 0.80
AllLocalFilesMethod · 0.65
IsReceiveOnlyChangedMethod · 0.45
doneMethod · 0.45

Tested by

no test coverage detected