| Giorgi Lekveishvili | 45b4d52 | 2020-03-19 21:11:18 +0400 | [diff] [blame] | 1 | package chunk |
| 2 | |||||
| giolekva | 1f6577a | 2020-03-25 12:53:06 +0400 | [diff] [blame] | 3 | import ( |
| 4 | "io" | ||||
| 5 | |||||
| giolekva | d2a029d | 2020-03-25 23:06:08 +0400 | [diff] [blame] | 6 | "github.com/giolekva/pcloud/api" |
| giolekva | 1f6577a | 2020-03-25 12:53:06 +0400 | [diff] [blame] | 7 | ) |
| 8 | |||||
| 9 | type ChunkInfo struct { | ||||
| 10 | Status api.ChunkStatus | ||||
| 11 | Size int | ||||
| 12 | Committed int | ||||
| 13 | } | ||||
| Giorgi Lekveishvili | 45b4d52 | 2020-03-19 21:11:18 +0400 | [diff] [blame] | 14 | |
| 15 | type Chunk interface { | ||||
| giolekva | 1f6577a | 2020-03-25 12:53:06 +0400 | [diff] [blame] | 16 | Stats() (ChunkInfo, error) |
| 17 | ReaderAt() io.ReaderAt | ||||
| 18 | WriterAt() io.WriterAt | ||||
| Giorgi Lekveishvili | 45b4d52 | 2020-03-19 21:11:18 +0400 | [diff] [blame] | 19 | } |
| 20 | |||||
| giolekva | 7be17df | 2020-03-21 13:57:02 +0400 | [diff] [blame] | 21 | type ChunkFactory interface { |
| giolekva | 1f6577a | 2020-03-25 12:53:06 +0400 | [diff] [blame] | 22 | New(size int) Chunk |
| Giorgi Lekveishvili | 45b4d52 | 2020-03-19 21:11:18 +0400 | [diff] [blame] | 23 | } |