@Override public void flush() { da.flush(); }
@Override public void flush() { landmarkWeightDA.flush(); subnetworkStorage.flush(); }
@Override public synchronized void flush() { try { StringWriter sw = new StringWriter(); saveProperties(map, sw); // TODO at the moment the size is limited to da.segmentSize() ! byte[] bytes = sw.toString().getBytes(UTF_CS); da.setBytes(0, bytes, bytes.length); da.flush(); } catch (IOException ex) { throw new RuntimeException(ex); } }
private void fillDataAccessWithElevationData(Raster raster, DataAccess heights, int dataAccessWidth) { final int height = raster.getHeight(); final int width = raster.getWidth(); int x = 0; int y = 0; try { for (y = 0; y < height; y++) { for (x = 0; x < width; x++) { short val = (short) raster.getPixel(x, y, (int[]) null)[0]; if (val < -1000 || val > 12000) val = Short.MIN_VALUE; heights.setShort(2 * (y * dataAccessWidth + x), val); } } heights.flush(); } catch (Exception ex) { throw new RuntimeException("Problem at x:" + x + ", y:" + y, ex); } }
@Override public void flush() { turnCosts.setHeader(0, turnCostsEntryBytes); turnCosts.setHeader(1 * 4, turnCostsCount); turnCosts.flush(); }
private void updateHeightsFromFile(double lat, double lon, DataAccess heights) throws FileNotFoundException { try { byte[] bytes = getByteArrayFromFile(lat, lon); heights.create(bytes.length); for (int bytePos = 0; bytePos < bytes.length; bytePos += 2) { short val = BIT_UTIL.toShort(bytes, bytePos); if (val < -1000 || val > 12000) val = Short.MIN_VALUE; heights.setShort(bytePos, val); } heights.setHeader(WIDTH_BYTE_INDEX, bytes.length / 2); heights.flush(); } catch (FileNotFoundException ex) { logger.warn("File not found for the coordinates for " + lat + "," + lon); throw ex; } catch (Exception ex) { throw new RuntimeException("There was an issue looking up the coordinates for " + lat + "," + lon, ex); } }
@Override public void flush() { names.setHeader(0, BitUtil.LITTLE.getIntLow(bytePointer)); names.setHeader(4, BitUtil.LITTLE.getIntHigh(bytePointer)); names.flush(); }
@Override public void flush() { dataAccess.setHeader(0, MAGIC_INT); dataAccess.setHeader(1 * 4, calcChecksum()); dataAccess.setHeader(2 * 4, minResolutionInMeter); // saving space not necessary: dataAccess.trimTo((lastPointer + 1) * 4); dataAccess.flush(); }
@Override public void flush() { index.setHeader(0, MAGIC_INT); index.setHeader(1 * 4, latSize); index.setHeader(2 * 4, lonSize); index.setHeader(3 * 4, graph.getNodes()); index.flush(); }
@Test public void testNoErrorForDACreate() { Directory dir = createDir(); da = dir.find("testing"); da.create(100); da.flush(); } }
@Test public void testRenameFlush() { DataAccess da = createDataAccess(name); da.create(100); da.setInt(17 * 4, 17); da.flush(); assertTrue(new File(directory + name).exists()); da.rename(name + "wow"); assertFalse(new File(directory + name).exists()); assertTrue(new File(directory + name + "wow").exists()); assertEquals(17, da.getInt(17 * 4)); da.close(); da = createDataAccess(name + "wow"); assertTrue(da.loadExisting()); assertEquals(17, da.getInt(17 * 4)); da.close(); }
@Test public void testLoadClose() { DataAccess da = createDataAccess(name); da.create(300); da.setInt(2 * 4, 321); da.flush(); da.close(); da = createDataAccess(name); assertTrue(da.loadExisting()); assertEquals(321, da.getInt(2 * 4)); da.close(); }
@Test public void textMixRAM2MMAP() { DataAccess da = new RAMDataAccess(name, directory, true, defaultOrder); assertFalse(da.loadExisting()); da.create(100); da.setInt(7 * 4, 123); da.flush(); da.close(); da = createDataAccess(name); assertTrue(da.loadExisting()); assertEquals(123, da.getInt(7 * 4)); da.close(); }
@Test public void textMixMMAP2RAM() { DataAccess da = createDataAccess(name); assertFalse(da.loadExisting()); da.create(100); da.setInt(7 * 4, 123); // TODO "memory mapped flush" is expensive and not required. only writing the header is required. da.flush(); da.close(); da = new RAMDataAccess(name, directory, true, defaultOrder); assertTrue(da.loadExisting()); assertEquals(123, da.getInt(7 * 4)); da.close(); } }
@Test public void testCopy() { DataAccess da1 = createDataAccess(name); da1.create(1001 * 4); da1.setHeader(4, 12); da1.setInt(1 * 4, 1); da1.setInt(123 * 4, 321); da1.setInt(1000 * 4, 1111); DataAccess da2 = createDataAccess(name + "2"); da2.create(10); da1.copyTo(da2); assertEquals(12, da2.getHeader(4)); assertEquals(1, da2.getInt(1 * 4)); assertEquals(321, da2.getInt(123 * 4)); assertEquals(1111, da2.getInt(1000 * 4)); da2.setInt(1 * 4, 2); assertEquals(2, da2.getInt(1 * 4)); da2.flush(); da1.flush(); // make sure they are independent! assertEquals(1, da1.getInt(1 * 4)); da1.close(); da2.close(); }
@Test public void testSegments() { DataAccess da = createDataAccess(name); da.setSegmentSize(128); da.create(10); assertEquals(1, da.getSegments()); da.ensureCapacity(500); int olds = da.getSegments(); assertTrue(olds > 3); da.setInt(400, 321); da.flush(); da.close(); da = createDataAccess(name); assertTrue(da.loadExisting()); assertEquals(olds, da.getSegments()); assertEquals(321, da.getInt(400)); da.close(); }
@Test public void testHeader() { DataAccess da = createDataAccess(name); da.create(300); da.setHeader(7 * 4, 123); assertEquals(123, da.getHeader(7 * 4)); da.setHeader(10 * 4, Integer.MAX_VALUE / 3); assertEquals(Integer.MAX_VALUE / 3, da.getHeader(10 * 4)); da.setHeader(11 * 4, Helper.degreeToInt(123.321)); assertEquals(123.321, Helper.intToDegree(da.getHeader(11 * 4)), 1e-4); da.flush(); da.close(); da = createDataAccess(name); assertTrue(da.loadExisting()); assertEquals(123, da.getHeader(7 * 4)); da.close(); }
@Test public void testLoadFlush() { DataAccess da = createDataAccess(name); assertFalse(da.loadExisting()); da.create(300); da.setInt(7 * 4, 123); assertEquals(123, da.getInt(7 * 4)); da.setInt(10 * 4, Integer.MAX_VALUE / 3); assertEquals(Integer.MAX_VALUE / 3, da.getInt(10 * 4)); da.flush(); // check noValue clearing assertEquals(0, da.getInt(2 * 4)); assertEquals(0, da.getInt(3 * 4)); assertEquals(123, da.getInt(7 * 4)); assertEquals(Integer.MAX_VALUE / 3, da.getInt(10 * 4)); da.close(); // cannot load data if already closed try { da.loadExisting(); assertTrue(false); } catch (Exception ex) { assertEquals("already closed", ex.getMessage()); } da = createDataAccess(name); assertTrue(da.loadExisting()); assertEquals(123, da.getInt(7 * 4)); da.close(); }