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  }