MCPcopy Create free account
hub / github.com/brimdata/super / NewObjectFromHeader

Function NewObjectFromHeader

csup/object.go:42–56  ·  view source on GitHub ↗
(r io.ReaderAt, hdr Header)

Source from the content-addressed store, hash-verified

40}
41
42func NewObjectFromHeader(r io.ReaderAt, hdr Header) (*Object, error) {
43 cctx := NewContext()
44 if err := cctx.readMeta(io.NewSectionReader(r, HeaderSize, int64(hdr.MetaSize))); err != nil {
45 return nil, err
46 }
47 if hdr.Root >= uint32(len(cctx.values)) {
48 return nil, fmt.Errorf("CSUP root ID %d larger than values table (len %d)", hdr.Root, len(cctx.values))
49 }
50 cctx.subtypesReader = io.NewSectionReader(r, int64(HeaderSize+hdr.MetaSize), int64(hdr.TypeSize))
51 return &Object{
52 cctx: cctx,
53 readerAt: io.NewSectionReader(r, int64(HeaderSize+hdr.MetaSize+hdr.TypeSize), int64(hdr.DataSize)),
54 header: hdr,
55 }, nil
56}
57
58func (o *Object) Close() error {
59 if closer, ok := o.readerAt.(io.Closer); ok {

Callers 3

ReadMethod · 0.92
ConcurrentPullMethod · 0.92
NewObjectFunction · 0.85

Calls 2

readMetaMethod · 0.95
NewContextFunction · 0.70

Tested by

no test coverage detected