예제 #1
0
 /** Indique si le fichier possède la piece numeros num */
 public boolean hasPiece(int num) {
   if (_iscomplete) {
     return true;
   } else {
     return _buffermap.getBit(num);
   }
 }
예제 #2
0
 /** Renvoi le nombre de pieces manquantes */
 public int nbMissingPieces() {
   if (_iscomplete) {
     return 0;
   } else {
     return _buffermap.getNbMissingPieces();
   }
 }
예제 #3
0
 /** Ecrit dans le fichier la pièce piece de numeros num */
 public void writePiece(byte[] piece, int num) {
   if (_iscomplete) {
     throw new IllegalArgumentException();
   } else {
     this.writePieceTmpFile(piece, num);
     _buffermap.setBit(num, true);
   }
 }
예제 #4
0
  /** Lis le header du fichier temporaire et charge ses informations */
  private void readHeaderTmpFile() {
    try {
      FileInputStream reader_tmp = new FileInputStream(this);
      FileChannel reader = reader_tmp.getChannel();

      int key_size = 0;
      int offset = 0;

      // Taile de le clef
      key_size = Tools.readInt(reader, offset);
      offset += 4;
      // Clef
      _key = Tools.readString(reader, offset, key_size);
      offset += key_size;
      // Size
      _size = Tools.readInt(reader, offset);
      offset += 4;
      // piecesize
      _piecesize = Tools.readInt(reader, offset);
      offset += 4;
      // Buffermap
      _buffermap = new Buffermap(this.nbPieces(), false);
      int i;
      for (i = 0; i < this.nbPieces(); i++) {
        int index = Tools.readInt(reader, offset);
        if (index >= 0) {
          _buffermap.setBit(i, true);
        } else {
          _buffermap.setBit(i, false);
        }
        offset += 4;
      }

      reader_tmp.close();
    } catch (Exception e) {
      System.out.println("Unable to read tmp file header");
      e.printStackTrace();
    }
  }
예제 #5
0
 /** Renvoi le buffermap brute sous forme d'array d'octets */
 public byte[] getRawBuffermap() {
   return _buffermap.rawBuffer();
 }
예제 #6
0
 /** Renvoi la taille du buffermap en octets */
 public int buffermapSize() {
   return _buffermap.getBufferSize();
 }