private void writeDatasets() throws IOException { for (TDFDataset dataset : datasetCache.values()) { long position = bytesWritten; BufferedByteWriter buffer = new BufferedByteWriter(); dataset.write(buffer); write(buffer.getBytes()); int nBytes = (int) (bytesWritten - position); datasetIndex.put(dataset.getName(), new IndexEntry(position, nBytes)); } }
private void writeGroups() throws IOException { for (TDFGroup group : groupCache.values()) { long position = bytesWritten; BufferedByteWriter buffer = new BufferedByteWriter(); group.write(buffer); write(buffer.getBytes()); int nBytes = (int) (bytesWritten - position); groupIndex.put(group.getName(), new IndexEntry(position, nBytes)); } }
private void writeGroups() throws IOException { for (TDFGroup group : groupCache.values()) { long position = bytesWritten; BufferedByteWriter buffer = new BufferedByteWriter(); group.write(buffer); write(buffer.getBytes()); int nBytes = (int) (bytesWritten - position); groupIndex.put(group.getName(), new IndexEntry(position, nBytes)); } }
private void writeDatasets() throws IOException { for (TDFDataset dataset : datasetCache.values()) { long position = bytesWritten; BufferedByteWriter buffer = new BufferedByteWriter(); dataset.write(buffer); write(buffer.getBytes()); int nBytes = (int) (bytesWritten - position); datasetIndex.put(dataset.getName(), new IndexEntry(position, nBytes)); } }
private void writeIndex() throws IOException { BufferedByteWriter buffer = new BufferedByteWriter(); // Now write out dataset index buffer.putInt(datasetIndex.size()); for (Map.Entry<String, IndexEntry> entry : datasetIndex.entrySet()) { buffer.putNullTerminatedString(entry.getKey()); buffer.putLong(entry.getValue().position); buffer.putInt(entry.getValue().nBytes); } // group index log.info("Group idx: " + groupIndex.size()); buffer.putInt(groupIndex.size()); for (Map.Entry<String, IndexEntry> entry : groupIndex.entrySet()) { buffer.putNullTerminatedString(entry.getKey()); buffer.putLong(entry.getValue().position); buffer.putInt(entry.getValue().nBytes); } byte[] bytes = buffer.getBytes(); write(bytes); }
private void writeIndex() throws IOException { BufferedByteWriter buffer = new BufferedByteWriter(); // Now write out dataset index buffer.putInt(datasetIndex.size()); for (Map.Entry<String, IndexEntry> entry : datasetIndex.entrySet()) { buffer.putNullTerminatedString(entry.getKey()); buffer.putLong(entry.getValue().position); buffer.putInt(entry.getValue().nBytes); } // group index System.out.println("Group idx: " + groupIndex.size()); buffer.putInt(groupIndex.size()); for (Map.Entry<String, IndexEntry> entry : groupIndex.entrySet()) { buffer.putNullTerminatedString(entry.getKey()); buffer.putLong(entry.getValue().position); buffer.putInt(entry.getValue().nBytes); } byte[] bytes = buffer.getBytes(); write(bytes); }
public void writeTile(String dsId, int tileNumber, TDFTile tile) throws IOException { TDFDataset dataset = datasetCache.get(dsId); if (dataset == null) { throw new java.lang.NoSuchFieldError("Dataset: " + dsId + " doese not exist. " + "Call createDataset first"); } long pos = bytesWritten; if (tileNumber < dataset.tilePositions.length) { dataset.tilePositions[tileNumber] = pos; // Write the tile contents to a byte buffer first, so we can optionally gzip it BufferedByteWriter buffer = new BufferedByteWriter(); tile.writeTo(buffer); byte[] bytes = buffer.getBytes(); if (compressed) { bytes = compressionUtils.compress(bytes); } write(bytes); int nBytes = bytes.length; dataset.tileSizes[tileNumber] = nBytes; } else { // The occasional tile number == tile array size is expected, but tile // numbers larger than that are not if (tileNumber > dataset.tilePositions.length) { System.out.println("Unexpected tile number: " + tileNumber + " (max of " + dataset.tilePositions.length + " expected)."); } } }
public void writeTile(String dsId, int tileNumber, TDFTile tile) throws IOException { TDFDataset dataset = datasetCache.get(dsId); if (dataset == null) { throw new java.lang.NoSuchFieldError("Dataset: " + dsId + " doese not exist. " + "Call createDataset first"); } long pos = bytesWritten; if (tileNumber < dataset.tilePositions.length) { dataset.tilePositions[tileNumber] = pos; // Write the tile contents to a byte buffer first, so we can optionally gzip it BufferedByteWriter buffer = new BufferedByteWriter(); tile.writeTo(buffer); byte[] bytes = buffer.getBytes(); if (compressed) { bytes = CompressionUtils.compress(bytes); } write(bytes); int nBytes = bytes.length; //tile.writeTo(fos); //int nBytes = (int) (fos.bytesWritten() - pos); // bytes.length; dataset.tileSizes[tileNumber] = nBytes; } else { // The occasional tile number == tile array size is expected, but tile // numbers larger than that are not if (tileNumber > dataset.tilePositions.length) { System.out.println("Unexpected tile number: " + tileNumber + " (max of " + dataset.tilePositions.length + " expected)."); } } }