Author: bpoussin Date: 2012-09-03 01:09:00 +0200 (Mon, 03 Sep 2012) New Revision: 3755 Url: http://forge.codelutin.com/repositories/revision/isis-fish/3755 Log: on passe offset a long pour supporter les fichiers de resultats > 2go Modified: trunk/src/main/java/fr/ifremer/isisfish/datastore/ResultMappedStorage.java Modified: trunk/src/main/java/fr/ifremer/isisfish/datastore/ResultMappedStorage.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/datastore/ResultMappedStorage.java 2012-08-31 18:17:43 UTC (rev 3754) +++ trunk/src/main/java/fr/ifremer/isisfish/datastore/ResultMappedStorage.java 2012-09-02 23:09:00 UTC (rev 3755) @@ -96,7 +96,7 @@ protected SimulationStorage simulation = null; protected RandomAccessFile raf; - protected int offset; + protected long offset; protected Map<TimeStep, Map<String, ResultMapped>> stepNameResults = new TreeMap<TimeStep, Map<String, ResultMapped>>(); protected Map<String, Map<TimeStep, ResultMapped>> nameStepResults = @@ -186,14 +186,14 @@ */ static protected class ResultMapped { protected RandomAccessFile raf; - protected int offset; - protected int size; + protected long offset; + protected long size; protected TimeStep step; protected String name; protected MatrixND matrix; /** read data from file */ - public ResultMapped(RandomAccessFile raf, int offset) throws IOException { + public ResultMapped(RandomAccessFile raf, long offset) throws IOException { this.raf = raf; this.offset = offset; @@ -223,10 +223,10 @@ } } - int size = (int) raf.getFilePointer(); - int dataOffset = offset + size; + long size = raf.getFilePointer(); + long dataOffset = offset + size; - int dataSize = raf.readInt(); + int dataSize = raf.readInt(); // en mettant un int on est limite a 2Go x 8 (double) = 16Go par matrice DoubleBigMappedVector data = new DoubleBigMappedVector(raf, dataOffset, dataSize); this.matrix = matrixFactory.create(name, sems, dimNames, data); @@ -235,7 +235,7 @@ } /** write date to file */ - public ResultMapped(RandomAccessFile raf, int offset, + public ResultMapped(RandomAccessFile raf, long offset, TimeStep step, String name, MatrixND matrix) throws IOException { this.raf = raf; this.offset = offset; @@ -245,7 +245,7 @@ String[] dimNames = matrix.getDimensionNames(); int[] dims = matrix.getDim(); List[] sems = matrix.getSemantics(); - int dataSize = MatrixHelper.getVectorSize(dims); + int dataSize = MatrixHelper.getVectorSize(dims); // en mettant un int on est limite a 2Go x 8 (double) = 16Go par matrice raf.write(step.getStep()); // ecriture du pas de temps raf.writeUTF(name); // ecriture du nom du resultat @@ -274,9 +274,9 @@ raf.writeInt(dataSize); // on prend la position apres l'ecriture de l'entete - int size = (int) raf.getFilePointer(); + long size = raf.getFilePointer(); - int dataOffset = offset + size; + long dataOffset = offset + size; // on cree la nouvelle matrice comme il faut (semantique non decore) DoubleBigMappedVector data = new DoubleBigMappedVector(raf, dataOffset, dataSize); this.matrix = MatrixFactory.getInstance().create(name, sems, dimNames, data); @@ -291,7 +291,7 @@ * retourne la taille en nombre de byte * @return */ - public int size() { + public long size() { return size; }