in datahub/resultmodel.go [475:524]
func NewGetPBRecordsResult(data []byte, schema *RecordSchema, commonResp *CommonResponseResult) (*GetRecordsResult, error) {
data, err := util.UnwrapMessage(data)
if err != nil {
return nil, err
}
grr := &pbmodel.GetRecordsResponse{}
if err := proto.Unmarshal(data, grr); err != nil {
return nil, err
}
result := &GetRecordsResult{
CommonResponseResult: *commonResp,
RecordSchema: schema,
}
if grr.NextCursor != nil {
result.NextCursor = *(grr.NextCursor)
}
if grr.StartSequence != nil {
result.StartSequence = *grr.StartSequence
}
if grr.LatestSequence != nil {
result.LatestSequence = *grr.LatestSequence
}
if grr.LatestTime != nil {
result.LatestTime = *grr.LatestTime
}
if grr.RecordCount != nil {
result.RecordCount = int(*grr.RecordCount)
if result.RecordCount > 0 {
result.Records = make([]IRecord, result.RecordCount)
for idx, record := range grr.Records {
//Tuple topic
if result.RecordSchema != nil {
tr := NewTupleRecord(result.RecordSchema, *record.SystemTime)
if err := fillTupleData(tr, record); err != nil {
return nil, err
}
result.Records[idx] = tr
} else {
br := NewBlobRecord(record.Data.Data[0].Value, *record.SystemTime)
if err := fillBlobData(br, record); err != nil {
return nil, err
}
result.Records[idx] = br
}
}
}
}
return result, nil
}