public Builder mergeFrom(ucar.nc2.stream.NcStreamProto.DataCol other) { if (other == ucar.nc2.stream.NcStreamProto.DataCol.getDefaultInstance()) return this; if (!other.getName().isEmpty()) { name_ = other.name_; onChanged();
private void decodeMemberData(StructureMembers members, NcStreamProto.DataCol memberData, Section parentSection) throws IOException { String name = memberData.getName(); DataType dataType = NcStream.convertDataType(memberData.getDataType()); Section section = NcStream.decodeSection(memberData.getSection()); if (!memberData.getIsVlen()) { assert memberData.getNelems() == section.computeSize(); } // the dproto section includes parents, remove them Section msection = section.removeFirst(parentSection); if (memberData.getIsVlen()) msection = msection.appendRange(Range.VLEN); StructureMembers.Member result = members.addMember(name, null, null, dataType, msection.getShape()); Array data = decode(memberData, parentSection); result.setDataArray(data); }
/** * <code>optional string name = 1;</code> * * <pre> * fullname for top, shortname for member * </pre> */ public Builder clearName() { name_ = getDefaultInstance().getName(); onChanged(); return this; } /**
private Array decodeStructureData(NcStreamProto.DataCol dproto, Section parentSection) throws IOException { NcStreamProto.ArrayStructureCol structData = dproto.getStructdata(); Section section = NcStream.decodeSection(dproto.getSection()); int nelems = dproto.getNelems(); assert nelems == section.computeSize(); // accumulate parent sections parentSection = section.prepend(parentSection); StructureMembers members = new StructureMembers(dproto.getName()); for (NcStreamProto.DataCol memberData : structData.getMemberDataList()) { decodeMemberData(members, memberData, parentSection); } return new ArrayStructureMA(members, section.getShape()); }
private DataResult readData2(InputStream is) throws IOException { int psize = NcStream.readVInt(is); if (debug) System.out.println(" readData data message len= " + psize); byte[] dp = new byte[psize]; NcStream.readFully(is, dp); NcStreamProto.DataCol dproto = NcStreamProto.DataCol.parseFrom(dp); // NcStreamProto.Data2 dproto = NcStreamProto.Data2.parseDelimitedFrom(is); NcStreamDataCol decoder = new NcStreamDataCol(); Array data = decoder.decode(dproto, null); return new DataResult(dproto.getName(), data); }