github.com/Cloud-Foundations/Dominator@v0.3.4/lib/rsync/api.go (about) 1 package rsync 2 3 import ( 4 "io" 5 ) 6 7 type Conn interface { 8 Flush() error 9 io.Reader 10 io.Writer 11 } 12 13 type Decoder interface { 14 Decode(e interface{}) error 15 } 16 17 type Encoder interface { 18 Encode(e interface{}) error 19 } 20 21 type Stats struct { 22 NumRead uint64 23 NumWritten uint64 24 } 25 26 func GetBlocks(conn Conn, decoder Decoder, encoder Encoder, reader io.Reader, 27 writer io.WriteSeeker, totalBytes, readerBytes uint64) (Stats, error) { 28 return getBlocks(conn, decoder, encoder, reader, writer, totalBytes, 29 readerBytes) 30 } 31 32 func ServeBlocks(conn Conn, decoder Decoder, encoder Encoder, 33 reader io.ReadSeeker, length uint64) error { 34 return serveBlocks(conn, decoder, encoder, reader, length) 35 }