Files
syncthing/lib/protocol/bep_index_updates.go
T

79 lines
1.6 KiB
Go
Raw Normal View History

// Copyright (C) 2014 The Syncthing Authors.
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
// You can obtain one at https://mozilla.org/MPL/2.0/.
package protocol
import "github.com/syncthing/syncthing/internal/gen/bep"
type Index struct {
Folder string
Files []FileInfo
LastSequence int64
}
func (i *Index) toWire() *bep.Index {
files := make([]*bep.FileInfo, len(i.Files))
for j, f := range i.Files {
files[j] = f.ToWire(false)
}
return &bep.Index{
Folder: i.Folder,
Files: files,
LastSequence: i.LastSequence,
}
}
func indexFromWire(w *bep.Index) *Index {
if w == nil {
return nil
}
i := &Index{
Folder: w.Folder,
LastSequence: w.LastSequence,
}
i.Files = make([]FileInfo, len(w.Files))
for j, f := range w.Files {
i.Files[j] = FileInfoFromWire(f)
}
return i
}
type IndexUpdate struct {
Folder string
Files []FileInfo
LastSequence int64
PrevSequence int64
}
func (i *IndexUpdate) toWire() *bep.IndexUpdate {
files := make([]*bep.FileInfo, len(i.Files))
for j, f := range i.Files {
files[j] = f.ToWire(false)
}
return &bep.IndexUpdate{
Folder: i.Folder,
Files: files,
LastSequence: i.LastSequence,
PrevSequence: i.PrevSequence,
}
}
func indexUpdateFromWire(w *bep.IndexUpdate) *IndexUpdate {
if w == nil {
return nil
}
i := &IndexUpdate{
Folder: w.Folder,
LastSequence: w.LastSequence,
PrevSequence: w.PrevSequence,
}
i.Files = make([]FileInfo, len(w.Files))
for j, f := range w.Files {
i.Files[j] = FileInfoFromWire(f)
}
return i
}