mirror of
https://github.com/v2fly/v2ray-core.git
synced 2025-01-30 13:17:11 -05:00
comments
This commit is contained in:
parent
fcc66704fa
commit
b0ac43a8fc
@ -40,8 +40,10 @@ type SizeCounter struct {
|
||||
Size int64
|
||||
}
|
||||
|
||||
// CopyOption is an option for copying data.
|
||||
type CopyOption func(*copyHandler)
|
||||
|
||||
// IgnoreReaderError is a CopyOption that ignores errors from reader. Copy will continue in such case.
|
||||
func IgnoreReaderError() CopyOption {
|
||||
return func(handler *copyHandler) {
|
||||
handler.onReadError = append(handler.onReadError, func(err error) error {
|
||||
@ -50,6 +52,7 @@ func IgnoreReaderError() CopyOption {
|
||||
}
|
||||
}
|
||||
|
||||
// IgnoreWriterError is a CopyOption that ignores errors from writer. Copy will continue in such case.
|
||||
func IgnoreWriterError() CopyOption {
|
||||
return func(handler *copyHandler) {
|
||||
handler.onWriteError = append(handler.onWriteError, func(err error) error {
|
||||
@ -58,6 +61,7 @@ func IgnoreWriterError() CopyOption {
|
||||
}
|
||||
}
|
||||
|
||||
// UpdateActivity is a CopyOption to update activity on each data copy operation.
|
||||
func UpdateActivity(timer signal.ActivityUpdater) CopyOption {
|
||||
return func(handler *copyHandler) {
|
||||
handler.onData = append(handler.onData, func(MultiBuffer) {
|
||||
@ -66,6 +70,7 @@ func UpdateActivity(timer signal.ActivityUpdater) CopyOption {
|
||||
}
|
||||
}
|
||||
|
||||
// CountSize is a CopyOption that sums the total size of data copied into the given SizeCounter.
|
||||
func CountSize(sc *SizeCounter) CopyOption {
|
||||
return func(handler *copyHandler) {
|
||||
handler.onData = append(handler.onData, func(b MultiBuffer) {
|
||||
@ -97,8 +102,7 @@ func copyInternal(reader Reader, writer Writer, handler *copyHandler) error {
|
||||
}
|
||||
}
|
||||
|
||||
// Copy dumps all payload from reader to writer or stops when an error occurs.
|
||||
// ActivityTimer gets updated as soon as there is a payload.
|
||||
// Copy dumps all payload from reader to writer or stops when an error occurs. It returns nil when EOF.
|
||||
func Copy(reader Reader, writer Writer, options ...CopyOption) error {
|
||||
handler := new(copyHandler)
|
||||
for _, option := range options {
|
||||
|
Loading…
Reference in New Issue
Block a user