Documentation

Overview

    Package rbytes contains the definitions of types useful for serializing and deserializing ROOT data buffers.

    rbytes also defines the interfaces to interact with ROOT's metadata classes such as StreamerInfo and StreamerElements.

    Index

    Constants

    View Source
    const (
    	BypassStreamer                  uint32 = 1 << 12
    	CannotHandleMemberWiseStreaming uint32 = 1 << 17
    )
    View Source
    const (
    
    	//baskets
    	DisplacementMask = 0xFF000000
    )
    View Source
    const (
    	StreamedMemberWise = 0x4000
    )

    Variables

    This section is empty.

    Functions

    func ResizeBool

    func ResizeBool(sli []bool, n int) []bool

    func ResizeD32

    func ResizeD32(sli []root.Double32, n int) []root.Double32

    func ResizeF16

    func ResizeF16(sli []root.Float16, n int) []root.Float16

    func ResizeF32

    func ResizeF32(sli []float32, n int) []float32

    func ResizeF64

    func ResizeF64(sli []float64, n int) []float64

    func ResizeI16

    func ResizeI16(sli []int16, n int) []int16

    func ResizeI32

    func ResizeI32(sli []int32, n int) []int32

    func ResizeI64

    func ResizeI64(sli []int64, n int) []int64

    func ResizeI8

    func ResizeI8(sli []int8, n int) []int8

    func ResizeStr

    func ResizeStr(sli []string, n int) []string

    func ResizeU16

    func ResizeU16(sli []uint16, n int) []uint16

    func ResizeU32

    func ResizeU32(sli []uint32, n int) []uint32

    func ResizeU64

    func ResizeU64(sli []uint64, n int) []uint64

    func ResizeU8

    func ResizeU8(sli []uint8, n int) []uint8

    Types

    type Binder

    type Binder interface {
    	Bind(ptr interface{}) error
    }

      Binder wraps the Bind method.

      type Counter

      type Counter interface {
      	Count(f func() int) error
      }

        Counter wraps the Count method.

        type Decoder

        type Decoder interface {
        	DecodeROOT(ptr interface{}) error
        }

          Decoder is the interface that wraps the basic DecodeROOT method.

          type Encoder

          type Encoder interface {
          	EncodeROOT(ptr interface{}) error
          }

            Encoder is the interface that wraps the basic EncodeROOT method.

            type Marshaler

            type Marshaler interface {
            	MarshalROOT(w *WBuffer) (int, error)
            }

              Marshaler is the interface implemented by an object that can marshal itself into a ROOT buffer

              type RBuffer

              type RBuffer struct {
              	// contains filtered or unexported fields
              }

                RBuffer is a read-only ROOT buffer for streaming.

                func NewRBuffer

                func NewRBuffer(data []byte, refs map[int64]interface{}, offset uint32, ctx StreamerInfoContext) *RBuffer

                func (*RBuffer) CheckByteCount

                func (r *RBuffer) CheckByteCount(pos, count int32, start int64, class string)

                func (*RBuffer) DumpHex

                func (r *RBuffer) DumpHex(n int)

                func (*RBuffer) Err

                func (r *RBuffer) Err() error

                func (*RBuffer) Len

                func (r *RBuffer) Len() int64

                func (*RBuffer) Pos

                func (r *RBuffer) Pos() int64

                func (*RBuffer) RStream

                func (r *RBuffer) RStream(si StreamerInfo, ptr interface{}) error

                func (*RBuffer) Read

                func (r *RBuffer) Read(p []byte) (int, error)

                func (*RBuffer) ReadArrayBool

                func (r *RBuffer) ReadArrayBool(arr []bool)

                func (*RBuffer) ReadArrayD32

                func (r *RBuffer) ReadArrayD32(arr []root.Double32, elm StreamerElement)

                func (*RBuffer) ReadArrayF16

                func (r *RBuffer) ReadArrayF16(arr []root.Float16, elm StreamerElement)

                func (*RBuffer) ReadArrayF32

                func (r *RBuffer) ReadArrayF32(sli []float32)

                func (*RBuffer) ReadArrayF64

                func (r *RBuffer) ReadArrayF64(sli []float64)

                func (*RBuffer) ReadArrayI16

                func (r *RBuffer) ReadArrayI16(sli []int16)

                func (*RBuffer) ReadArrayI32

                func (r *RBuffer) ReadArrayI32(sli []int32)

                func (*RBuffer) ReadArrayI64

                func (r *RBuffer) ReadArrayI64(sli []int64)

                func (*RBuffer) ReadArrayI8

                func (r *RBuffer) ReadArrayI8(arr []int8)

                func (*RBuffer) ReadArrayString

                func (r *RBuffer) ReadArrayString(arr []string)

                func (*RBuffer) ReadArrayU16

                func (r *RBuffer) ReadArrayU16(sli []uint16)

                func (*RBuffer) ReadArrayU32

                func (r *RBuffer) ReadArrayU32(sli []uint32)

                func (*RBuffer) ReadArrayU64

                func (r *RBuffer) ReadArrayU64(sli []uint64)

                func (*RBuffer) ReadArrayU8

                func (r *RBuffer) ReadArrayU8(arr []uint8)

                func (*RBuffer) ReadBool

                func (r *RBuffer) ReadBool() bool

                func (*RBuffer) ReadCString

                func (r *RBuffer) ReadCString(n int) string

                func (*RBuffer) ReadD32

                func (r *RBuffer) ReadD32(elm StreamerElement) root.Double32

                func (*RBuffer) ReadF16

                func (r *RBuffer) ReadF16(elm StreamerElement) root.Float16

                func (*RBuffer) ReadF32

                func (r *RBuffer) ReadF32() float32

                func (*RBuffer) ReadF64

                func (r *RBuffer) ReadF64() float64

                func (*RBuffer) ReadI16

                func (r *RBuffer) ReadI16() int16

                func (*RBuffer) ReadI32

                func (r *RBuffer) ReadI32() int32

                func (*RBuffer) ReadI64

                func (r *RBuffer) ReadI64() int64

                func (*RBuffer) ReadI8

                func (r *RBuffer) ReadI8() int8

                func (*RBuffer) ReadObject

                func (r *RBuffer) ReadObject(class string) root.Object

                func (*RBuffer) ReadObjectAny

                func (r *RBuffer) ReadObjectAny() (obj root.Object)

                func (*RBuffer) ReadSTLString

                func (r *RBuffer) ReadSTLString() string

                func (*RBuffer) ReadStaticArrayI32

                func (r *RBuffer) ReadStaticArrayI32() []int32

                func (*RBuffer) ReadStdBitset

                func (r *RBuffer) ReadStdBitset(v []uint8)

                func (*RBuffer) ReadStdVectorStrs

                func (r *RBuffer) ReadStdVectorStrs(sli *[]string)

                func (*RBuffer) ReadString

                func (r *RBuffer) ReadString() string

                func (*RBuffer) ReadU16

                func (r *RBuffer) ReadU16() uint16

                func (*RBuffer) ReadU32

                func (r *RBuffer) ReadU32() uint32

                func (*RBuffer) ReadU64

                func (r *RBuffer) ReadU64() uint64

                func (*RBuffer) ReadU8

                func (r *RBuffer) ReadU8() uint8

                func (*RBuffer) ReadVersion

                func (r *RBuffer) ReadVersion(class string) (vers int16, pos, n int32)

                func (*RBuffer) Reset

                func (r *RBuffer) Reset(data []byte, refs map[int64]interface{}, offset uint32, ctx StreamerInfoContext) *RBuffer

                func (*RBuffer) SetErr

                func (r *RBuffer) SetErr(err error)

                func (*RBuffer) SetPos

                func (r *RBuffer) SetPos(pos int64)

                func (*RBuffer) SkipObject

                func (r *RBuffer) SkipObject()

                func (*RBuffer) SkipVersion

                func (r *RBuffer) SkipVersion(class string)

                func (*RBuffer) StreamerInfo

                func (r *RBuffer) StreamerInfo(name string, version int) (StreamerInfo, error)

                  StreamerInfo returns the named StreamerInfo. If version is negative, the latest version should be returned.

                  type RStreamer

                  type RStreamer interface {
                  	RStreamROOT(*RBuffer) error
                  }

                    RStreamer is the interface implemented by types that can stream themselves from a ROOT buffer.

                    type RVersioner

                    type RVersioner interface {
                    	RVersion() int16
                    }

                      RVersioner is the interface implemented by an object that can tell the ROOT system what is its current version.

                      type StreamKind

                      type StreamKind byte

                        StreamKind describes whether a composite ROOT value was encoded member-wise or object-wise.

                        const (
                        	ObjectWise StreamKind = iota
                        	MemberWise
                        )

                        func (StreamKind) String

                        func (k StreamKind) String() string

                        type Streamer

                        type Streamer interface {
                        	WStreamer
                        	RStreamer
                        }

                          Streamer is the interface implemented by types that can stream themselves to and from a ROOT buffer.

                          type StreamerElement

                          type StreamerElement interface {
                          	root.Named
                          
                          	ArrayDim() int
                          	ArrayDims() []int32
                          	ArrayLen() int
                          	Type() rmeta.Enum
                          	Offset() uintptr
                          	Size() uintptr
                          	TypeName() string
                          	XMin() float64
                          	XMax() float64
                          	Factor() float64
                          }

                            StreamerElement describes a ROOT StreamerElement

                            type StreamerInfo

                            type StreamerInfo interface {
                            	root.Named
                            
                            	CheckSum() int
                            	ClassVersion() int
                            	Elements() []StreamerElement
                            
                            	// BuildStreamers builds the r/w streamers.
                            	BuildStreamers() error
                            
                            	NewDecoder(kind StreamKind, r *RBuffer) (Decoder, error)
                            	NewEncoder(kind StreamKind, w *WBuffer) (Encoder, error)
                            
                            	NewRStreamer(kind StreamKind) (RStreamer, error)
                            	NewWStreamer(kind StreamKind) (WStreamer, error)
                            }

                              StreamerInfo describes a ROOT Streamer.

                              type StreamerInfoContext

                              type StreamerInfoContext interface {
                              	// StreamerInfo returns the named StreamerInfo.
                              	// If version is negative, the latest version should be returned.
                              	StreamerInfo(name string, version int) (StreamerInfo, error)
                              }

                                StreamerInfoContext defines the protocol to retrieve a ROOT StreamerInfo metadata type by name.

                                Implementations should make sure the protocol is goroutine safe.

                                type Unmarshaler

                                type Unmarshaler interface {
                                	UnmarshalROOT(r *RBuffer) error
                                }

                                  Unmarshaler is the interface implemented by an object that can unmarshal itself from a ROOT buffer

                                  type WBuffer

                                  type WBuffer struct {
                                  	// contains filtered or unexported fields
                                  }

                                    WBuffer is a write-only ROOT buffer for streaming.

                                    func NewWBuffer

                                    func NewWBuffer(data []byte, refs map[interface{}]int64, offset uint32, ctx StreamerInfoContext) *WBuffer

                                    func (*WBuffer) Bytes

                                    func (w *WBuffer) Bytes() []byte

                                    func (*WBuffer) DumpHex

                                    func (w *WBuffer) DumpHex(n int)

                                    func (*WBuffer) Err

                                    func (w *WBuffer) Err() error

                                    func (*WBuffer) Grow

                                    func (w *WBuffer) Grow(n int)

                                    func (*WBuffer) Len

                                    func (w *WBuffer) Len() int64

                                    func (*WBuffer) Pos

                                    func (w *WBuffer) Pos() int64

                                    func (*WBuffer) SetByteCount

                                    func (w *WBuffer) SetByteCount(beg int64, class string) (int, error)

                                    func (*WBuffer) SetErr

                                    func (w *WBuffer) SetErr(err error)

                                    func (*WBuffer) SetPos

                                    func (w *WBuffer) SetPos(pos int64)

                                    func (*WBuffer) StreamerInfo

                                    func (w *WBuffer) StreamerInfo(name string, version int) (StreamerInfo, error)

                                      StreamerInfo returns the named StreamerInfo. If version is negative, the latest version should be returned.

                                      func (*WBuffer) Write

                                      func (w *WBuffer) Write(p []byte) (int, error)

                                      func (*WBuffer) WriteBool

                                      func (w *WBuffer) WriteBool(v bool)

                                      func (*WBuffer) WriteCString

                                      func (w *WBuffer) WriteCString(v string)

                                      func (*WBuffer) WriteClass

                                      func (w *WBuffer) WriteClass(beg int64, obj root.Object) (uint32, error)

                                      func (*WBuffer) WriteD32

                                      func (w *WBuffer) WriteD32(v root.Double32, elm StreamerElement)

                                      func (*WBuffer) WriteF16

                                      func (w *WBuffer) WriteF16(v root.Float16, elm StreamerElement)

                                      func (*WBuffer) WriteF32

                                      func (w *WBuffer) WriteF32(v float32)

                                      func (*WBuffer) WriteF64

                                      func (w *WBuffer) WriteF64(v float64)

                                      func (*WBuffer) WriteFastArrayBool

                                      func (w *WBuffer) WriteFastArrayBool(v []bool)

                                      func (*WBuffer) WriteFastArrayD32

                                      func (w *WBuffer) WriteFastArrayD32(v []root.Double32, elm StreamerElement)

                                      func (*WBuffer) WriteFastArrayF16

                                      func (w *WBuffer) WriteFastArrayF16(v []root.Float16, elm StreamerElement)

                                      func (*WBuffer) WriteFastArrayF32

                                      func (w *WBuffer) WriteFastArrayF32(v []float32)

                                      func (*WBuffer) WriteFastArrayF64

                                      func (w *WBuffer) WriteFastArrayF64(v []float64)

                                      func (*WBuffer) WriteFastArrayI16

                                      func (w *WBuffer) WriteFastArrayI16(v []int16)

                                      func (*WBuffer) WriteFastArrayI32

                                      func (w *WBuffer) WriteFastArrayI32(v []int32)

                                      func (*WBuffer) WriteFastArrayI64

                                      func (w *WBuffer) WriteFastArrayI64(v []int64)

                                      func (*WBuffer) WriteFastArrayI8

                                      func (w *WBuffer) WriteFastArrayI8(v []int8)

                                      func (*WBuffer) WriteFastArrayString

                                      func (w *WBuffer) WriteFastArrayString(v []string)

                                      func (*WBuffer) WriteFastArrayU16

                                      func (w *WBuffer) WriteFastArrayU16(v []uint16)

                                      func (*WBuffer) WriteFastArrayU32

                                      func (w *WBuffer) WriteFastArrayU32(v []uint32)

                                      func (*WBuffer) WriteFastArrayU64

                                      func (w *WBuffer) WriteFastArrayU64(v []uint64)

                                      func (*WBuffer) WriteFastArrayU8

                                      func (w *WBuffer) WriteFastArrayU8(v []uint8)

                                      func (*WBuffer) WriteI16

                                      func (w *WBuffer) WriteI16(v int16)

                                      func (*WBuffer) WriteI32

                                      func (w *WBuffer) WriteI32(v int32)

                                      func (*WBuffer) WriteI64

                                      func (w *WBuffer) WriteI64(v int64)

                                      func (*WBuffer) WriteI8

                                      func (w *WBuffer) WriteI8(v int8)

                                      func (*WBuffer) WriteObjectAny

                                      func (w *WBuffer) WriteObjectAny(obj root.Object) error

                                      func (*WBuffer) WriteSTLString

                                      func (w *WBuffer) WriteSTLString(v string)

                                      func (*WBuffer) WriteStaticArrayI32

                                      func (w *WBuffer) WriteStaticArrayI32(v []int32)

                                      func (*WBuffer) WriteStdBitset

                                      func (w *WBuffer) WriteStdBitset(v []uint8)

                                      func (*WBuffer) WriteStdVectorStrs

                                      func (w *WBuffer) WriteStdVectorStrs(v []string)

                                      func (*WBuffer) WriteString

                                      func (w *WBuffer) WriteString(v string)

                                      func (*WBuffer) WriteU16

                                      func (w *WBuffer) WriteU16(v uint16)

                                      func (*WBuffer) WriteU32

                                      func (w *WBuffer) WriteU32(v uint32)

                                      func (*WBuffer) WriteU64

                                      func (w *WBuffer) WriteU64(v uint64)

                                      func (*WBuffer) WriteU8

                                      func (w *WBuffer) WriteU8(v uint8)

                                      func (*WBuffer) WriteVersion

                                      func (w *WBuffer) WriteVersion(vers int16) int64

                                      type WStreamer

                                      type WStreamer interface {
                                      	WStreamROOT(*WBuffer) error
                                      }

                                        WStreamer is the interface implemented by types that can stream themselves to a ROOT buffer.