converge/pkg/support/ioutils/readwriteaddrcloser.go

41 lines
713 B
Go

package ioutils
import (
"io"
"net"
)
type ReadWriteAddrCloser interface {
io.ReadWriteCloser
RemoteAddr() net.Addr
}
type SimpleReadWriteAddrCloser struct {
rw io.ReadWriteCloser
addr net.Addr
}
func NewSimpleReadWriteAddrCloser(rw io.ReadWriteCloser, addr net.Addr) *SimpleReadWriteAddrCloser {
return &SimpleReadWriteAddrCloser{
rw: rw,
addr: addr,
}
}
func (s *SimpleReadWriteAddrCloser) Read(p []byte) (int, error) {
return s.rw.Read(p)
}
func (s *SimpleReadWriteAddrCloser) Write(p []byte) (int, error) {
return s.rw.Write(p)
}
func (s *SimpleReadWriteAddrCloser) Close() error {
return s.rw.Close()
}
func (s *SimpleReadWriteAddrCloser) RemoteAddr() net.Addr {
return s.addr
}