func (sts *SimpleTxnSubmitter) translateWrite(outgoingSeg *capn.Segment, referencesInNeedOfPositions *[]*msgs.VarIdPos, action *msgs.Action, clientAction *cmsgs.ClientAction) { action.SetWrite() clientWrite := clientAction.Write() write := action.Write() write.SetValue(clientWrite.Value()) clientReferences := clientWrite.References() references := msgs.NewVarIdPosList(outgoingSeg, clientReferences.Len()) write.SetReferences(references) copyReferences(&clientReferences, &references, referencesInNeedOfPositions) }
func (sts *SimpleTxnSubmitter) translateCreate(outgoingSeg *capn.Segment, referencesInNeedOfPositions *[]*msgs.VarIdPos, action *msgs.Action, clientAction *cmsgs.ClientAction) (*common.Positions, []common.RMId, error) { action.SetCreate() clientCreate := clientAction.Create() create := action.Create() create.SetValue(clientCreate.Value()) vUUId := common.MakeVarUUId(clientAction.VarId()) positions, hashCodes, err := sts.hashCache.CreatePositions(vUUId, int(sts.topology.MaxRMCount)) if err != nil { return nil, nil, err } create.SetPositions((capn.UInt8List)(*positions)) clientReferences := clientCreate.References() references := msgs.NewVarIdPosList(outgoingSeg, clientReferences.Len()) create.SetReferences(references) copyReferences(&clientReferences, &references, referencesInNeedOfPositions) return positions, hashCodes, nil }