blob: f5a32c453ca413c375919c10444af62665d08b8d [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package symbolize
import (
"encoding/json"
"io"
)
type DumpEntry struct {
Modules []Module `json:"modules"`
Segments []Segment `json:"segments"`
Type string `json:"type"`
Name string `json:"name"`
}
type DumpHandler struct {
dumps []DumpEntry
}
func (d *DumpHandler) HandleDump(dump *DumpfileElement) {
triggerCtx := dump.Context()
d.dumps = append(d.dumps, DumpEntry{
Modules: triggerCtx.Mods,
Segments: triggerCtx.Segs,
Type: dump.SinkType(),
Name: dump.Name(),
})
}
func (d *DumpHandler) Write(buf io.Writer) error {
enc := json.NewEncoder(buf)
enc.SetIndent("", " ")
err := enc.Encode(d.dumps)
if err != nil {
return err
}
return nil
}