package notify import ( "context" "errors" "io" ) type TransferReaderAt interface { io.ReaderAt Size() int64 } type TransferWriterAt interface { io.WriterAt } type TransferCommitter interface { Commit(context.Context) error } type TransferSyncer interface { Sync(context.Context) error } type TransferCloser interface { Close() error } type TransferDescriptor struct { ID string Channel TransferChannel Size int64 Checksum string Metadata map[string]string } type TransferSendOptions struct { Descriptor TransferDescriptor Source TransferReaderAt ChunkSize int Parallelism int MaxInflightBytes int64 VerifyChecksum bool } type TransferReceiveOptions struct { Descriptor TransferDescriptor Sink TransferWriterAt SyncOnCheckpoint bool VerifyChecksum bool } type TransferAcceptInfo struct { Descriptor TransferDescriptor LogicalConn *LogicalConn TransportConn *TransportConn TransportGeneration uint64 } type TransferHandle interface { ID() string LogicalConn() *LogicalConn TransportConn() *TransportConn Snapshot() (TransferSnapshot, bool) Wait(context.Context) error Abort(context.Context, error) error } var ( errTransferIDEmpty = errors.New("transfer id is empty") errTransferSourceNil = errors.New("transfer source is nil") errTransferSinkNil = errors.New("transfer sink is nil") errTransferHandlerNotConfigured = errors.New("transfer handler is not configured") errTransferSizeInvalid = errors.New("transfer size must be non-negative") errTransferSessionNotFound = errors.New("transfer session not found") errTransferSessionExists = errors.New("transfer session already exists") errTransferStreamAlreadyActive = errors.New("transfer stream already active") errTransferSegmentOffset = errors.New("transfer segment offset mismatch") errTransferSizeMismatch = errors.New("transfer size mismatch") errTransferChecksumMismatch = errors.New("transfer checksum mismatch") errTransferChecksumUnsupported = errors.New("transfer checksum verification requires io.ReaderAt") errTransferSequenceEncodeNil = errors.New("transfer sequence encoder is nil") errTransferSequenceDecodeNil = errors.New("transfer sequence decoder is nil") errTransferAlreadyCompleted = errors.New("transfer already completed") errTransferAlreadyAborted = errors.New("transfer already aborted") )