fix(streams): handle missing codec_name in appendDOT function

This commit is contained in:
Sergey Krashevich
2024-06-16 08:56:57 +03:00
parent 31e57c2ff8
commit 5d57959608
+9 -4
View File
@@ -77,12 +77,17 @@ func (n *node) codec() []byte {
return b[:len(b)-1] return b[:len(b)-1]
} }
func (n *node) appendDOT(dot []byte, group string) []byte { func (n *node) appendDOT(dot []byte, group string) ([]byte, error) {
dot = fmt.Appendf(dot, "%d [group=%s, label=%q, title=%q];\n", n.ID, group, n.Codec["codec_name"], n.codec()) codecName, ok := n.Codec["codec_name"]
if !ok {
return nil, fmt.Errorf("codec_name not found in Codec map")
}
dot = fmt.Appendf(dot, "%d [group=%s, label=%q, title=%q];\n", n.ID, group, codecName, n.codec())
//for _, sink := range n.Childs { //for _, sink := range n.Childs {
// dot = fmt.Appendf(dot, "%d -> %d;\n", n.ID, sink) // dot = fmt.Appendf(dot, "%d -> %d;\n", n.ID, sink)
//} //}
return dot return dot, nil
} }
type conn struct { type conn struct {
@@ -111,7 +116,7 @@ func (c *conn) appendDOT(dot []byte, group string) []byte {
for _, recv := range c.Receivers { for _, recv := range c.Receivers {
dot = fmt.Appendf(dot, "%d -> %d [label=%q];\n", c.ID, recv.ID, humanBytes(recv.Bytes)) dot = fmt.Appendf(dot, "%d -> %d [label=%q];\n", c.ID, recv.ID, humanBytes(recv.Bytes))
dot = recv.appendDOT(dot, "node") dot, _ = recv.appendDOT(dot, "node") // TODO: handle error for debug purposes
} }
for _, send := range c.Senders { for _, send := range c.Senders {
dot = fmt.Appendf(dot, "%d -> %d [label=%q];\n", send.Parent, c.ID, humanBytes(send.Bytes)) dot = fmt.Appendf(dot, "%d -> %d [label=%q];\n", send.Parent, c.ID, humanBytes(send.Bytes))