converge/pkg/support/iowrappers/readwriteaddrcombiner.go
Erik Brakkee 3f3635b056 a lot of progress in setting up tests for the communication.
Wrote ChannelReadWriter that simulates a connection inmemory.
This is used by the agentserver test for testing the initialization. The
first test is already working.
2024-09-08 11:16:49 +02:00

38 lines
795 B
Go

package iowrappers
import (
"io"
"net"
)
type ReadWriterAddrCombiner struct {
reader io.Reader
writer io.Writer
closer func() error
remoteAddr net.Addr
}
func (rw *ReadWriterAddrCombiner) Read(p []byte) (n int, err error) {
return rw.reader.Read(p)
}
func NewReadWriterAddrCombiner(reader io.Reader, writer io.Writer,
closer func() error, remoteAddr net.Addr) *ReadWriterAddrCombiner {
return &ReadWriterAddrCombiner{
reader: reader,
writer: writer,
closer: closer,
remoteAddr: remoteAddr,
}
}
func (rw *ReadWriterAddrCombiner) Write(p []byte) (n int, err error) {
return rw.writer.Write(p)
}
func (rw *ReadWriterAddrCombiner) Close() error {
return rw.closer()
}
func (rw *ReadWriterAddrCombiner) RemoteAddr() net.Addr {
return rw.remoteAddr
}