| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 | 
							- // Copyright (C) 2016 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 FileDownloadProgressUpdateType = bep.FileDownloadProgressUpdateType
 
- const (
 
- 	FileDownloadProgressUpdateTypeAppend = bep.FileDownloadProgressUpdateType_FILE_DOWNLOAD_PROGRESS_UPDATE_TYPE_APPEND
 
- 	FileDownloadProgressUpdateTypeForget = bep.FileDownloadProgressUpdateType_FILE_DOWNLOAD_PROGRESS_UPDATE_TYPE_FORGET
 
- )
 
- type DownloadProgress struct {
 
- 	Folder  string
 
- 	Updates []FileDownloadProgressUpdate
 
- }
 
- func (d *DownloadProgress) toWire() *bep.DownloadProgress {
 
- 	updates := make([]*bep.FileDownloadProgressUpdate, len(d.Updates))
 
- 	for i, u := range d.Updates {
 
- 		updates[i] = u.toWire()
 
- 	}
 
- 	return &bep.DownloadProgress{
 
- 		Folder:  d.Folder,
 
- 		Updates: updates,
 
- 	}
 
- }
 
- func downloadProgressFromWire(w *bep.DownloadProgress) *DownloadProgress {
 
- 	dp := &DownloadProgress{
 
- 		Folder:  w.Folder,
 
- 		Updates: make([]FileDownloadProgressUpdate, len(w.Updates)),
 
- 	}
 
- 	for i, u := range w.Updates {
 
- 		dp.Updates[i] = fileDownloadProgressUpdateFromWire(u)
 
- 	}
 
- 	return dp
 
- }
 
- type FileDownloadProgressUpdate struct {
 
- 	UpdateType   FileDownloadProgressUpdateType
 
- 	Name         string
 
- 	Version      Vector
 
- 	BlockIndexes []int
 
- 	BlockSize    int
 
- }
 
- func (f *FileDownloadProgressUpdate) toWire() *bep.FileDownloadProgressUpdate {
 
- 	bidxs := make([]int32, len(f.BlockIndexes))
 
- 	for i, b := range f.BlockIndexes {
 
- 		bidxs[i] = int32(b)
 
- 	}
 
- 	return &bep.FileDownloadProgressUpdate{
 
- 		UpdateType:   f.UpdateType,
 
- 		Name:         f.Name,
 
- 		Version:      f.Version.ToWire(),
 
- 		BlockIndexes: bidxs,
 
- 		BlockSize:    int32(f.BlockSize),
 
- 	}
 
- }
 
- func fileDownloadProgressUpdateFromWire(w *bep.FileDownloadProgressUpdate) FileDownloadProgressUpdate {
 
- 	bidxs := make([]int, len(w.BlockIndexes))
 
- 	for i, b := range w.BlockIndexes {
 
- 		bidxs[i] = int(b)
 
- 	}
 
- 	return FileDownloadProgressUpdate{
 
- 		UpdateType:   w.UpdateType,
 
- 		Name:         w.Name,
 
- 		Version:      VectorFromWire(w.Version),
 
- 		BlockIndexes: bidxs,
 
- 		BlockSize:    int(w.BlockSize),
 
- 	}
 
- }
 
 
  |