torrent

package
v1.4.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 16, 2025 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrBadHash = errors.New("hash does not match")

Functions

This section is empty.

Types

type ChunkMetadata

type ChunkMetadata struct {
	Index  uint64   `json:"index,omitempty" form:"index" query:"index" validate:"required"`
	Size   uint64   `json:"size,omitempty" form:"size" query:"size" validate:"required"`
	Offset uint64   `json:"offset,omitempty" form:"offset" query:"offset" validate:"required"`
	Hash   [32]byte `json:"hash,omitempty" form:"hash" query:"hash" validate:"required"`
	// contains filtered or unexported fields
}

func ChunksBySize

func ChunksBySize(file io.Reader, size uint64) ([]*ChunkMetadata, error)

func (*ChunkMetadata) Copy

func (v *ChunkMetadata) Copy() *ChunkMetadata

func (*ChunkMetadata) CopyAsInterface

func (v *ChunkMetadata) CopyAsInterface() interface{}

func (*ChunkMetadata) Equal

func (v *ChunkMetadata) Equal(u *ChunkMetadata) bool

func (*ChunkMetadata) IsValid

func (v *ChunkMetadata) IsValid() error

func (*ChunkMetadata) MarshalBinary

func (v *ChunkMetadata) MarshalBinary() ([]byte, error)

func (*ChunkMetadata) MarshalJSON

func (v *ChunkMetadata) MarshalJSON() ([]byte, error)

func (*ChunkMetadata) UnmarshalBinary

func (v *ChunkMetadata) UnmarshalBinary(data []byte) error

func (*ChunkMetadata) UnmarshalBinaryFrom

func (v *ChunkMetadata) UnmarshalBinaryFrom(rd io.Reader) error

func (*ChunkMetadata) UnmarshalJSON

func (v *ChunkMetadata) UnmarshalJSON(b []byte) error

type DownloadJob

type DownloadJob struct {
	// contains filtered or unexported fields
}

func NewDownloadJob

func NewDownloadJob(file *FileMetadata) (*DownloadJob, error)

func (*DownloadJob) Done

func (j *DownloadJob) Done() bool

Done returns true if every chunk has been received.

func (*DownloadJob) RecordChunk

func (j *DownloadJob) RecordChunk(index int, data []byte) error

RecordChunk verifies and records the given chunk.

func (*DownloadJob) Reset

func (j *DownloadJob) Reset() error

Reset aborts the active job, if there is one, and removes all the temporary files.

func (*DownloadJob) WriteTo

func (j *DownloadJob) WriteTo(file io.WriteSeeker) error

WriteTo writes the chunks to a file.

type FileMetadata

type FileMetadata struct {
	Chunks []*ChunkMetadata `json:"chunks,omitempty" form:"chunks" query:"chunks" validate:"required"`
	// contains filtered or unexported fields
}

func (*FileMetadata) Copy

func (v *FileMetadata) Copy() *FileMetadata

func (*FileMetadata) CopyAsInterface

func (v *FileMetadata) CopyAsInterface() interface{}

func (*FileMetadata) Equal

func (v *FileMetadata) Equal(u *FileMetadata) bool

func (*FileMetadata) IsValid

func (v *FileMetadata) IsValid() error

func (*FileMetadata) MarshalBinary

func (v *FileMetadata) MarshalBinary() ([]byte, error)

func (*FileMetadata) MarshalJSON

func (v *FileMetadata) MarshalJSON() ([]byte, error)

func (*FileMetadata) UnmarshalBinary

func (v *FileMetadata) UnmarshalBinary(data []byte) error

func (*FileMetadata) UnmarshalBinaryFrom

func (v *FileMetadata) UnmarshalBinaryFrom(rd io.Reader) error

func (*FileMetadata) UnmarshalJSON

func (v *FileMetadata) UnmarshalJSON(b []byte) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL