simplify the Tracer interface by combining the TracerFor... methods

This commit is contained in:
Marten Seemann
2020-07-11 10:46:35 +07:00
parent ece3592544
commit ee24d3899e
32 changed files with 139 additions and 194 deletions

View File

@@ -20,26 +20,19 @@ import (
const eventChanSize = 50
type tracer struct {
getLogWriter func(connectionID []byte) io.WriteCloser
getLogWriter func(p logging.Perspective, connectionID []byte) io.WriteCloser
}
var _ logging.Tracer = &tracer{}
// NewTracer creates a new qlog tracer.
func NewTracer(getLogWriter func(connectionID []byte) io.WriteCloser) logging.Tracer {
func NewTracer(getLogWriter func(p logging.Perspective, connectionID []byte) io.WriteCloser) logging.Tracer {
return &tracer{getLogWriter: getLogWriter}
}
func (t *tracer) TracerForServer(odcid protocol.ConnectionID) logging.ConnectionTracer {
if w := t.getLogWriter(odcid.Bytes()); w != nil {
return newConnectionTracer(w, protocol.PerspectiveServer, odcid)
}
return nil
}
func (t *tracer) TracerForClient(odcid protocol.ConnectionID) logging.ConnectionTracer {
if w := t.getLogWriter(odcid.Bytes()); w != nil {
return newConnectionTracer(w, protocol.PerspectiveClient, odcid)
func (t *tracer) TracerForConnection(p logging.Perspective, odcid protocol.ConnectionID) logging.ConnectionTracer {
if w := t.getLogWriter(p, odcid.Bytes()); w != nil {
return newConnectionTracer(w, p, odcid)
}
return nil
}

View File

@@ -51,9 +51,8 @@ type entry struct {
var _ = Describe("Tracing", func() {
Context("tracer", func() {
It("returns nil when there's no io.WriteCloser", func() {
t := NewTracer(func([]byte) io.WriteCloser { return nil })
Expect(t.TracerForClient(logging.ConnectionID{1, 2, 3, 4})).To(BeNil())
Expect(t.TracerForServer(logging.ConnectionID{1, 2, 3, 4})).To(BeNil())
t := NewTracer(func(logging.Perspective, []byte) io.WriteCloser { return nil })
Expect(t.TracerForConnection(logging.PerspectiveClient, logging.ConnectionID{1, 2, 3, 4})).To(BeNil())
})
})
@@ -65,8 +64,8 @@ var _ = Describe("Tracing", func() {
BeforeEach(func() {
buf = &bytes.Buffer{}
t := NewTracer(func([]byte) io.WriteCloser { return nopWriteCloser(buf) })
tracer = t.TracerForServer(logging.ConnectionID{0xde, 0xad, 0xbe, 0xef})
t := NewTracer(func(logging.Perspective, []byte) io.WriteCloser { return nopWriteCloser(buf) })
tracer = t.TracerForConnection(logging.PerspectiveServer, logging.ConnectionID{0xde, 0xad, 0xbe, 0xef})
})
It("exports a trace that has the right metadata", func() {