builder.setSection(NcStream.encodeSection(section)); builder.addStringdata(s); Section ssection = section.removeLast(); builder.setSection(NcStream.encodeSection(ssection));
builder.setSection(NcStream.encodeSection(section)); builder.addStringdata(s); Section ssection = section.removeLast(); builder.setSection(NcStream.encodeSection(ssection));
void encodeVlenData(NcStreamProto.DataRow.Builder builder, Section section, Array data) { if (!(data instanceof ArrayObject)) throw new IllegalStateException("Unknown class for OPAQUE =" + data.getClass().getName()); IndexIterator iter = data.getIndexIterator(); int count = 0; while (iter.hasNext()) { Array varray = (Array) iter.next(); int vlensize = (int) varray.getSize(); builder.addVlens(vlensize); count += vlensize; } builder.setNelems(count); Section ssection = section.removeLast(); builder.setSection(NcStream.encodeSection(ssection)); assert section.computeSize() == count; int nbytes = count * data.getDataType().getSize(); ByteBuffer bb = ByteBuffer.allocate(nbytes); // copyArrayToBB(data, bb); iter = data.getIndexIterator(); while (iter.hasNext()) { Array varray = (Array) iter.next(); copyArrayToBB(varray, bb); } }
static public NcStreamProto.Data encodeDataProto(String varname, DataType datatype, Section section, boolean deflate, int uncompressedLength) { NcStreamProto.Data.Builder builder = NcStreamProto.Data.newBuilder(); builder.setVarName(varname); builder.setDataType(convertDataType(datatype)); builder.setSection(encodeSection(section)); if (deflate) { builder.setCompress(NcStreamProto.Compress.DEFLATE); builder.setUncompressedSize(uncompressedLength); } builder.setVersion(ncstream_data_version); return builder.build(); }
builder.setSection(NcStream.encodeSection(ssection)); assert ssection.computeSize() == count; builder.setSection(NcStream.encodeSection(new Section(data.getShape())));
NcStreamProto.ArrayStructureCol.Builder buildNestedStructureData(List<MemberData> mdataList) { NcStreamProto.ArrayStructureCol.Builder result = NcStreamProto.ArrayStructureCol.newBuilder(); for (MemberData nestedMemberData : mdataList) { NcStreamProto.DataCol.Builder nestedBuilder = NcStreamProto.DataCol.newBuilder(); nestedBuilder.setName(nestedMemberData.member.getName()); nestedBuilder.setDataType(NcStream.convertDataType(nestedMemberData.member.getDataType())); nestedBuilder.setNelems(nestedMemberData.nelems); nestedBuilder.setSection(NcStream.encodeSection(nestedMemberData.section)); if (nestedMemberData.member.isVariableLength()) { nestedMemberData.finishVlens(); nestedBuilder.addAllVlens(nestedMemberData.vlens); nestedMemberData.bb.flip(); nestedBuilder.setPrimdata(ByteString.copyFrom(nestedMemberData.bb)); nestedBuilder.setNelems(nestedMemberData.nelems); nestedBuilder.setIsVlen(true); } else if (nestedMemberData.member.getDataType() == DataType.STRING) { nestedBuilder.addAllStringdata(nestedMemberData.stringList); } else if (nestedMemberData.member.getDataType() == DataType.OPAQUE) { nestedBuilder.addAllOpaquedata(nestedMemberData.opaqueList); } else if (nestedMemberData.member.getDataType() == DataType.STRUCTURE) { nestedBuilder.setStructdata(buildNestedStructureData(nestedMemberData.members)); // recurse } else { nestedMemberData.bb.flip(); nestedBuilder.setPrimdata(ByteString.copyFrom(nestedMemberData.bb)); } result.addMemberData(nestedBuilder); } return result; }
static NcStreamProto.Data encodeDataProto(Variable var, Section section, boolean deflate, int uncompressedLength) { NcStreamProto.Data.Builder builder = NcStreamProto.Data.newBuilder(); builder.setVarName(var.getFullNameEscaped()); builder.setDataType(encodeDataType(var.getDataType())); builder.setSection(encodeSection(section)); if (deflate) { builder.setCompress(NcStreamProto.Compress.DEFLATE); builder.setUncompressedSize(uncompressedLength); } if (var.isVariableLength()) builder.setVdata(true); builder.setVersion(2); return builder.build(); }
static NcStreamProto.Data encodeDataProto(Variable var, Section section, boolean deflate, int uncompressedLength) { NcStreamProto.Data.Builder builder = NcStreamProto.Data.newBuilder(); builder.setVarName(var.getFullNameEscaped()); builder.setDataType(encodeDataType(var.getDataType())); builder.setSection(encodeSection(section)); if (deflate) { builder.setCompress(NcStreamProto.Compress.DEFLATE); builder.setUncompressedSize(uncompressedLength); } if (var.isVariableLength()) builder.setVdata(true); builder.setVersion(2); return builder.build(); }
static NcStreamProto.Data encodeDataProto(Variable var, Section section, NcStreamProto.Compress compressionType, ByteOrder bo, int uncompressedLength) { NcStreamProto.Data.Builder builder = NcStreamProto.Data.newBuilder(); builder.setVarName(var.getFullNameEscaped()); builder.setDataType(convertDataType(var.getDataType())); builder.setSection(encodeSection(section)); builder.setCompress(compressionType); if (compressionType != NcStreamProto.Compress.NONE) { builder.setUncompressedSize(uncompressedLength); } builder.setVdata(var.isVariableLength()); builder.setBigend(bo == ByteOrder.BIG_ENDIAN); builder.setVersion(ncstream_data_version); return builder.build(); }
static public PointStreamProto.PointFeatureCollection encodePointFeatureCollection(String name, String timeUnitString, PointFeature pf) throws IOException { PointStreamProto.PointFeatureCollection.Builder builder = PointStreamProto.PointFeatureCollection.newBuilder(); if (name == null) System.out.printf("HEY null pointstream name%n"); builder.setName(name); builder.setTimeUnit(timeUnitString); StructureData sdata = pf.getData(); StructureMembers sm = sdata.getStructureMembers(); for (StructureMembers.Member m : sm.getMembers()) { PointStreamProto.Member.Builder mbuilder = PointStreamProto.Member.newBuilder(); mbuilder.setName(m.getName()); if (null != m.getDescription()) mbuilder.setDesc(m.getDescription()); if (null != m.getUnitsString()) mbuilder.setUnits(m.getUnitsString()); mbuilder.setDataType(NcStream.encodeDataType(m.getDataType())); mbuilder.setSection(NcStream.encodeSection(new ucar.ma2.Section(m.getShape()))); builder.addMembers(mbuilder); } return builder.build(); }
static public PointStreamProto.PointFeatureCollection encodePointFeatureCollection(String name, PointFeature pf) throws IOException { PointStreamProto.PointFeatureCollection.Builder builder = PointStreamProto.PointFeatureCollection.newBuilder(); if (name == null) System.out.printf("HEY null pointstream name%n"); builder.setName(name); builder.setTimeUnit(pf.getTimeUnit().getUnitsString()); StructureData sdata = pf.getData(); StructureMembers sm = sdata.getStructureMembers(); for (StructureMembers.Member m : sm.getMembers()) { PointStreamProto.Member.Builder mbuilder = PointStreamProto.Member.newBuilder(); mbuilder.setName(m.getName()); if (null != m.getDescription()) mbuilder.setDesc(m.getDescription()); if (null != m.getUnitsString()) mbuilder.setUnits(m.getUnitsString()); mbuilder.setDataType(NcStream.encodeDataType(m.getDataType())); mbuilder.setSection(NcStream.encodeSection(new ucar.ma2.Section(m.getShape()))); builder.addMembers(mbuilder); } return builder.build(); }
static public PointStreamProto.PointFeatureCollection encodePointFeatureCollection( String name, String timeUnitString, String altUnits, PointFeature pf) throws IOException { PointStreamProto.PointFeatureCollection.Builder builder = PointStreamProto.PointFeatureCollection.newBuilder(); if (name == null) System.out.printf("HEY null pointstream name%n"); builder.setName(name); builder.setTimeUnit(timeUnitString); if (altUnits != null) { builder.setAltUnit(altUnits); } StructureData sdata = pf.getDataAll(); StructureMembers sm = sdata.getStructureMembers(); for (StructureMembers.Member m : sm.getMembers()) { PointStreamProto.Member.Builder mbuilder = PointStreamProto.Member.newBuilder(); mbuilder.setName(m.getName()); if (null != m.getDescription()) mbuilder.setDesc(m.getDescription()); if (null != m.getUnitsString()) mbuilder.setUnits(m.getUnitsString()); mbuilder.setDataType(NcStream.convertDataType(m.getDataType())); mbuilder.setSection(NcStream.encodeSection(new ucar.ma2.Section(m.getShape()))); builder.addMembers(mbuilder); } return builder.build(); }