io.go 497 B

1234567891011121314151617181920212223242526
  1. package stats
  2. import (
  3. "v2ray.com/core"
  4. "v2ray.com/core/common"
  5. "v2ray.com/core/common/buf"
  6. "v2ray.com/core/transport/pipe"
  7. )
  8. type SizeStatWriter struct {
  9. Counter core.StatCounter
  10. Writer buf.Writer
  11. }
  12. func (w *SizeStatWriter) WriteMultiBuffer(mb buf.MultiBuffer) error {
  13. w.Counter.Add(int64(mb.Len()))
  14. return w.Writer.WriteMultiBuffer(mb)
  15. }
  16. func (w *SizeStatWriter) Close() error {
  17. return common.Close(w.Writer)
  18. }
  19. func (w *SizeStatWriter) CloseError() {
  20. pipe.CloseError(w.Writer)
  21. }