MCPcopy Create free account
hub / github.com/apache/fory / PreserveRefId

Method PreserveRefId

go/fory/ref_resolver.go:217–229  ·  view source on GitHub ↗

PreserveRefId preserve a ref id, which is used by Reference / SetReadObject to set up reference for object that is first deserialized. Returns a ref id or -1 if reference is not enabled.

()

Source from the content-addressed store, hash-verified

215// set up reference for object that is first deserialized.
216// Returns a ref id or -1 if reference is not enabled.
217func (r *RefResolver) PreserveRefId() (int32, error) {
218 if !r.refTracking {
219 return -1, nil
220 }
221 nextReadRefId_ := len(r.readObjects)
222 if nextReadRefId_ > MaxInt32 {
223 return 0, fmt.Errorf("referencable objects exceeds max int32")
224 }
225 nextReadRefId := int32(nextReadRefId_)
226 r.readObjects = append(r.readObjects, reflect.Value{})
227 r.readRefIds = append(r.readRefIds, nextReadRefId)
228 return nextReadRefId, nil
229}
230
231func (r *RefResolver) TryPreserveRefId(buffer *ByteBuffer) (int32, error) {
232 var ctxErr Error

Callers 2

TryPreserveRefIdMethod · 0.95

Calls 1

int32Function · 0.50

Tested by 1