MCPcopy Create free account
hub / github.com/HDT3213/rdb / writeStreamEntries

Method writeStreamEntries

core/stream.go:438–462  ·  view source on GitHub ↗

writeStreamEntries writes stream entries

(entries []*model.StreamEntry)

Source from the content-addressed store, hash-verified

436
437// writeStreamEntries writes stream entries
438func (enc *Encoder) writeStreamEntries(entries []*model.StreamEntry) error {
439 err := enc.writeLength(uint64(len(entries)))
440 if err != nil {
441 return err
442 }
443
444 for _, entry := range entries {
445 // Write entry header (first message ID)
446 header := make([]byte, 16)
447 binary.BigEndian.PutUint64(header[0:8], entry.FirstMsgId.Ms)
448 binary.BigEndian.PutUint64(header[8:16], entry.FirstMsgId.Sequence)
449 err = enc.writeString(unsafeBytes2Str(header))
450 if err != nil {
451 return err
452 }
453
454 // Write entry content as listpack
455 err = enc.writeStreamEntryContent(entry)
456 if err != nil {
457 return err
458 }
459 }
460
461 return nil
462}
463
464// writeStreamEntryContent writes a stream entry content as listpack
465func (enc *Encoder) writeStreamEntryContent(entry *model.StreamEntry) error {

Callers 1

WriteStreamObjectMethod · 0.95

Calls 4

writeLengthMethod · 0.95
writeStringMethod · 0.95
unsafeBytes2StrFunction · 0.70

Tested by

no test coverage detected