MCPcopy Create free account
hub / github.com/google/gapid / decode

Method decode

gapis/capture/decoder.go:160–192  ·  view source on GitHub ↗
(ctx context.Context, in proto.Message)

Source from the content-addressed store, hash-verified

158}
159
160func (d *decoder) decode(ctx context.Context, in proto.Message) (interface{}, error) {
161 obj, err := d.unmarshal(ctx, in)
162 if err != nil {
163 return nil, err
164 }
165
166 switch obj := obj.(type) {
167 case *Header:
168 d.header = obj
169 if d.header.Version != CurrentCaptureVersion {
170 return nil, ErrUnsupportedVersion{Version: d.header.Version}
171 }
172 return in, nil
173
174 case *Resource:
175 if err := d.builder.addRes(ctx, obj.Index, obj.Data); err != nil {
176 return nil, err
177 }
178 return in, nil
179
180 case *TraceMessage:
181 d.builder.addMessage(ctx, obj)
182 return in, nil
183
184 case api.Cmd:
185 return &cmdGroup{cmd: obj}, nil
186
187 case *InitialState:
188 d.builder.initialState = obj
189 }
190
191 return obj, nil
192}
193
194func (d *decoder) flush(ctx context.Context) {
195 for k := range d.groups {

Callers 4

BeginGroupMethod · 0.95
BeginChildGroupMethod · 0.95
ObjectMethod · 0.95
ChildObjectMethod · 0.95

Calls 3

unmarshalMethod · 0.95
addResMethod · 0.80
addMessageMethod · 0.80

Tested by

no test coverage detected