aboutsummaryrefslogtreecommitdiff
path: root/chunk.go
diff options
context:
space:
mode:
authorn-peugnet <n.peugnet@free.fr>2021-10-06 11:34:14 +0200
committern-peugnet <n.peugnet@free.fr>2021-10-06 11:34:14 +0200
commitfccc89de47a3ed5fc576f28f7f02b1111a59c0c4 (patch)
tree9de36f7e6eab07c78d59428b2345aceab34df9cd /chunk.go
parent9b9710511b0dbe51ac030ef908f9468103b0bd0a (diff)
downloaddna-backup-fccc89de47a3ed5fc576f28f7f02b1111a59c0c4.tar.gz
dna-backup-fccc89de47a3ed5fc576f28f7f02b1111a59c0c4.zip
refactor: move repo and delta in their own package
Diffstat (limited to 'chunk.go')
-rw-r--r--chunk.go113
1 files changed, 0 insertions, 113 deletions
diff --git a/chunk.go b/chunk.go
deleted file mode 100644
index 3efaf4a..0000000
--- a/chunk.go
+++ /dev/null
@@ -1,113 +0,0 @@
-package main
-
-import (
- "bytes"
- "fmt"
- "io"
- "path/filepath"
-)
-
-type Chunk interface {
- Reader() io.ReadSeeker
- Len() int
-}
-
-type IdentifiedChunk interface {
- Chunk
- GetId() *ChunkId
-}
-
-type BufferedChunk interface {
- Chunk
- Bytes() []byte
-}
-
-type RepoChunk interface {
- Chunk
- SetRepo(r *Repo)
-}
-
-type ChunkId struct {
- Ver int
- Idx uint64
-}
-
-func (i *ChunkId) Path(repo string) string {
- return filepath.Join(repo, fmt.Sprintf(versionFmt, i.Ver), chunksName, fmt.Sprintf(chunkIdFmt, i.Idx))
-}
-
-func NewStoredChunk(repo *Repo, id *ChunkId) *StoredChunk {
- return &StoredChunk{repo: repo, Id: id}
-}
-
-type StoredChunk struct {
- repo *Repo
- Id *ChunkId
-}
-
-func (c *StoredChunk) GetId() *ChunkId {
- return c.Id
-}
-
-func (c *StoredChunk) SetRepo(r *Repo) {
- c.repo = r
-}
-
-func (c *StoredChunk) Reader() io.ReadSeeker {
- // log.Printf("Chunk %d: Reading from file\n", c.id)
- return c.repo.LoadChunkContent(c.Id)
-}
-
-func (c *StoredChunk) Len() int {
- return c.repo.chunkSize
-}
-
-func NewTempChunk(value []byte) *TempChunk {
- return &TempChunk{Value: value}
-}
-
-type TempChunk struct {
- Value []byte
-}
-
-func (c *TempChunk) Reader() io.ReadSeeker {
- return bytes.NewReader(c.Value)
-}
-
-func (c *TempChunk) Len() int {
- return len(c.Value)
-}
-
-func (c *TempChunk) Bytes() []byte {
- return c.Value
-}
-
-func (c *TempChunk) AppendFrom(r io.Reader) {
- buff, err := io.ReadAll(r)
- if err != nil {
- println("Chunk: error appending to temp chunk:", err)
- }
- c.Value = append(c.Value, buff...)
-}
-
-type DeltaChunk struct {
- repo *Repo
- Source *ChunkId
- Patch []byte
- Size int
-}
-
-func (c *DeltaChunk) SetRepo(r *Repo) {
- c.repo = r
-}
-
-func (c *DeltaChunk) Reader() io.ReadSeeker {
- var buff bytes.Buffer
- c.repo.Patcher().Patch(c.repo.LoadChunkContent(c.Source), &buff, bytes.NewReader(c.Patch))
- return bytes.NewReader(buff.Bytes())
-}
-
-// TODO: Maybe return the size of the patch instead ?
-func (c *DeltaChunk) Len() int {
- return c.Size
-}