/** * Get the size of each StructureData object in bytes. * * @return the size of each StructureData object in bytes. */ public int getStructureSize() { return members.getStructureSize(); }
/** * Get the size of each StructureData object in bytes. * * @return the size of each StructureData object in bytes. */ public int getStructureSize() { return members.getStructureSize(); }
/** * Get the size of each StructureData object in bytes. * * @return the size of each StructureData object in bytes. */ public int getStructureSize() { return members.getStructureSize(); }
@Override public long getSizeBytes() { return nelems * members.getStructureSize(); // LOOK we may not know the count ??? }
@Override public long getSizeBytes() { return nelems * members.getStructureSize(); // LOOK we may not know the count ??? }
@Override public long getSizeBytes() { return nelems * members.getStructureSize(); // LOOK we may not know the count ??? }
@Override public long getSizeBytes() { return indexCalc.getSize() * members.getStructureSize(); }
@Override public long getSizeBytes() { return indexCalc.getSize() * members.getStructureSize(); }
@Override public long getSizeBytes() { return indexCalc.getSize() * members.getStructureSize(); }
public StationFeatureCopyFactory(StationPointFeature proto) throws IOException { stationMap = new HashMap<>(); StructureData sdata = proto.getFeatureData(); sm = new StructureMembers(sdata.getStructureMembers()); sizeInBytes = OBJECT_SIZE + POINTER_SIZE + // PointFeatureCopy - 1 pointer 48 2 * 8 + 2 * POINTER_SIZE + // PointFeatureImpl - 2 doubles and 2 pointers 32 OBJECT_SIZE + 3 * 8 + // Earth Location - 3 doubles 64 OBJECT_SIZE + // StructureDataDeep 4 + POINTER_SIZE + // StructureDataA - 1 int and 1 pointer OBJECT_SIZE + 4 + 2 * POINTER_SIZE + // ArrayStructureBB - 1 int and 2 pointers (heap is optional) 2 * POINTER_SIZE + 4 + // ArrayStructure - 2 pointers and an int OBJECT_SIZE + 8 * 4 + 8 + POINTER_SIZE + // ByteBuffer - 8 ints, 1 long, 1 pointer sm.getStructureSize(); // LOOK vlens, Strings (Heap Size) }
public StationFeatureCopyFactory(StationPointFeature proto, DateUnit du) throws IOException { this.du = du; stationMap = new HashMap<>(); StructureData sdata = proto.getDataAll(); sm = new StructureMembers(sdata.getStructureMembers()); sizeInBytes = OBJECT_SIZE + POINTER_SIZE + // PointFeatureCopy - 1 pointer 48 2 * 8 + 2 * POINTER_SIZE + // PointFeatureImpl - 2 doubles and 2 pointers 32 OBJECT_SIZE + 3 * 8 + // Earth Location - 3 doubles 64 OBJECT_SIZE + // StructureDataDeep 4 + POINTER_SIZE + // StructureDataA - 1 int and 1 pointer OBJECT_SIZE + 4 + 2 * POINTER_SIZE + // ArrayStructureBB - 1 int and 2 pointers (heap is optional) 2 * POINTER_SIZE + 4 + // ArrayStructure - 2 pointers and an int OBJECT_SIZE + 8 * 4 + 8 + POINTER_SIZE + // ByteBuffer - 8 ints, 1 long, 1 pointer sm.getStructureSize(); // LOOK vlens, Strings (Heap Size) }
public PointFeatureCopyFactory(PointFeature proto) throws IOException { StructureData sdata = proto.getFeatureData(); sm = new StructureMembers(sdata.getStructureMembers()); sizeInBytes = OBJECT_SIZE + POINTER_SIZE + // PointFeatureCopy - 1 pointer 48 2 * 8 + 2 * POINTER_SIZE + // PointFeatureImpl - 2 doubles and 2 pointers 32 OBJECT_SIZE + 3 * 8 + // Earth Location - 3 doubles 64 OBJECT_SIZE + // StructureDataDeep 4 + POINTER_SIZE + // StructureDataA - 1 int and 1 pointer OBJECT_SIZE + 4 + 2 * POINTER_SIZE + // ArrayStructureBB - 1 int and 2 pointers (heap is optional) 2 * POINTER_SIZE + 4 + // ArrayStructure - 2 pointers and an int OBJECT_SIZE + 8 * 4 + 8 + POINTER_SIZE + // ByteBuffer - 8 ints, 1 long, 1 pointer sm.getStructureSize(); // LOOK vlens, Strings (Heap Size) }
public PointFeatureCopyFactory(PointFeature proto, DateUnit du) throws IOException { StructureData sdata = proto.getData(); this.du = du; sm = new StructureMembers(sdata.getStructureMembers()); sizeInBytes = OBJECT_SIZE + POINTER_SIZE + // PointFeatureCopy - 1 pointer 48 2 * 8 + 2 * POINTER_SIZE + // PointFeatureImpl - 2 doubles and 2 pointers 32 OBJECT_SIZE + 3 * 8 + // Earth Location - 3 doubles 64 OBJECT_SIZE + // StructureDataDeep 4 + POINTER_SIZE + // StructureDataA - 1 int and 1 pointer OBJECT_SIZE + 4 + 2 * POINTER_SIZE + // ArrayStructureBB - 1 int and 2 pointers (heap is optional) 2 * POINTER_SIZE + 4 + // ArrayStructure - 2 pointers and an int OBJECT_SIZE + 8 * 4 + 8 + POINTER_SIZE + // ByteBuffer - 8 ints, 1 long, 1 pointer sm.getStructureSize(); // LOOK vlens, Strings (Heap Size) }
static public ArrayStructureBB copyToArrayBB(StructureData sdata) { StructureMembers smo = sdata.getStructureMembers(); StructureMembers sm = new StructureMembers(smo); int size = sm.getStructureSize(); ByteBuffer bb = ByteBuffer.allocate(size); // default is big endian ArrayStructureBB abb = new ArrayStructureBB(sm, new int[]{1}, bb, 0); ArrayStructureBB.setOffsets(sm); copyToArrayBB(sdata, abb); return abb; }
/** * @deprecated use StructureDataDeep.copyToArrayBB */ static public ArrayStructureBB copyToArrayBB(StructureData sdata) { StructureMembers sm = new StructureMembers(sdata.getStructureMembers()); int size = sm.getStructureSize(); ByteBuffer bb = ByteBuffer.allocate(size); // default is big endian ArrayStructureBB abb = new ArrayStructureBB(sm, new int[]{1}, bb, 0); ArrayStructureBB.setOffsets(sm); StructureDataDeep.copyToArrayBB(sdata, abb); return abb; }
/** * @deprecated use StructureDataDeep.copyToArrayBB */ static public ArrayStructureBB copyToArrayBB(StructureData sdata) { StructureMembers sm = new StructureMembers(sdata.getStructureMembers()); int size = sm.getStructureSize(); ByteBuffer bb = ByteBuffer.allocate(size); // default is big endian ArrayStructureBB abb = new ArrayStructureBB(sm, new int[]{1}, bb, 0); ArrayStructureBB.setOffsets(sm); StructureDataDeep.copyToArrayBB(sdata, abb); return abb; }
public static boolean equals(StructureMembers members1, StructureMembers members2) { if (members1 == members2) { return true; } else if (members1 == null || members2 == null) { return false; } if (!equals(members1.getMembers(), members2.getMembers())) { return false; } else if (!Objects.deepEquals(members1.getStructureSize(), members2.getStructureSize())) { return false; } // We don't care about StructureMembers.getName(); it's an implementation detail. // Also, StructureMembers.memberHash is derived from StructureMembers.members; no need to test it. return true; }
public static int showOffsets(StructureMembers members, Indent indent, Formatter f) { int offset = 0; for (StructureMembers.Member m : members.getMembers()) { f.format("%s%s offset=%d (%d %s = %d bytes)%n", indent, m.getName(), m.getDataParam(), m.getSize(), m.getDataType(), m.getSizeBytes()); if (m.getStructureMembers() != null) { indent.incr(); StructureMembers nested = m.getStructureMembers(); f.format("%n%s%s == %d bytes%n", indent, nested.getName(), nested.getStructureSize()); showOffsets(nested, indent, f); indent.decr(); } } return offset; }
public static int showOffsets(StructureMembers members, Indent indent, Formatter f) { int offset = 0; for (StructureMembers.Member m : members.getMembers()) { f.format("%s%s offset=%d (%d %s = %d bytes)%n", indent, m.getName(), m.getDataParam(), m.getSize(), m.getDataType(), m.getSizeBytes()); if (m.getStructureMembers() != null) { indent.incr(); StructureMembers nested = m.getStructureMembers(); f.format("%n%s%s == %d bytes%n", indent, nested.getName(), nested.getStructureSize()); showOffsets(nested, indent, f); indent.decr(); } } return offset; }
public static int showOffsets(StructureMembers members, Indent indent, Formatter f) { int offset = 0; for (StructureMembers.Member m : members.getMembers()) { f.format("%s%s offset=%d (%d %s = %d bytes)%n", indent, m.getName(), m.getDataParam(), m.getSize(), m.getDataType(), m.getSizeBytes()); if (m.getStructureMembers() != null) { indent.incr(); StructureMembers nested = m.getStructureMembers(); f.format("%n%s%s == %d bytes%n", indent, nested.getName(), nested.getStructureSize()); showOffsets(nested, indent, f); indent.decr(); } } return offset; }