Package org.jmule.core.sharingmanager

Examples of org.jmule.core.sharingmanager.JMuleBitSet


    int availibility[] = filePartStatus.getPartAvailibility();

    int countSet = 0;// Total count of downloaded parts

    JMuleBitSet bit_set_availability = filePartStatus.get(sender);

    for (int i = 0; i < filePartStatus.getPartAvailibility().length; i++) {

      if (availibility[i] != 0)

        if (bit_set_availability.get(i)) {

          if (gapList.getIntersectedGaps(PARTSIZE * i,
              PARTSIZE * (i + 1) - 1).size() == 0) {

            availibility[i] = 0;// This part is downloaded
View Full Code Here


    download_status_list.setPeerStatus(sender,PeerDownloadStatus.UPLOAD_REQUEST);
    network_manager.sendUploadRequest(sender.getIP(), sender.getPort(), sharedFile.getFileHash());
  }
 
  void receivedFileStatusResponseFromPeer(Peer sender,FileHash fileHash, JMuleBitSet bitSetpartStatus) {
    JMuleBitSet bitSet = bitSetpartStatus;
    if (bitSet.getPartCount() == 0) {
      int partCount = (int) ((this.sharedFile.length() / PARTSIZE));
      if (this.sharedFile.length() % PARTSIZE != 0)
        partCount++;
      bitSet = new JMuleBitSet(partCount);
      bitSet.setPartCount(partCount);
      for (int i = 0; i < partCount; i++)
        bitSet.set(i);
    }
    partStatus.addPartStatus(sender, bitSet);

    if (!this.sharedFile.hasHashSet()) {
      download_status_list.setPeerStatus(sender,
View Full Code Here

    return (bytes);
  }

  public static JMuleBitSet byteToBitset(byte[] buffer, int pos, int length) {
    int nbits = length * 8;
    JMuleBitSet result = new JMuleBitSet(nbits);
    if (pos + length > buffer.length) {
      return result;
    }
    for (int i = 0; i < length; i++) {
      byte b = buffer[i + pos];
      for (int j = 0; j < 8; j++) {
        if ((b & 1 << j) != 0) {
          // "byte" * 8 + "bit in byte" = i * 8 + j
          result.set((i << 3) + j);
        }
      }
    }
    return (result);
  }
View Full Code Here

      FilePartStatus part_status = session.getPartStatus();
      List<Peer> response_peers = new ArrayList<Peer>();
      for(Peer p : session_peers) {
        if (response_peers.size() > ConfigurationManager.MAX_PEX_RESPONSE ) break;
        if (!part_status.hasStatus(p)) continue;
        JMuleBitSet bit_set = part_status.get(p);
        if (bit_set.hasAtLeastOne(true))
          response_peers.add(p);
      }
      _network_manager.sendSourcesResponse(peer.getIP(), peer.getPort(), fileHash, response_peers);
    } catch (DownloadManagerException e) {
      e.printStackTrace();
View Full Code Here

          byte[] data = new byte[count];
          for (int i = 0; i < count; i++)
            data[i] = packet_data.get();

          JMuleBitSet bitSet;
          bitSet = Convert.byteToBitset(data);
          bitSet.setPartCount(partCount);

          _network_manager.receivedFileStatusResponseFromPeer(peerIP,
              peerPort, new FileHash(file_hash), bitSet);
          break;
        }
View Full Code Here

   *   </tbody>
   * </table>
   * </table>
   */
  public static Packet getFileStatusReplyPacket(PartHashSet partHashSet,long fileSize, GapList fileGapList){
    JMuleBitSet bitSet = fileGapList.getBitSet(fileSize);
    byte [] bitSetArray = bitSet.getAsByteArray();
    Packet packet = new Packet(16 + 2 + bitSetArray.length, PROTO_EDONKEY_TCP);
    packet.setCommand(OP_FILESTATUS);
    packet.insertData(partHashSet.getFileHash().getHash());
    packet.insertData((short)partHashSet.size());
    packet.insertData(bitSetArray);
View Full Code Here

    }
  }
 
  public void removePartStatus(Peer peer){
    if (hasStatus(peer)) {
      JMuleBitSet bit_set = get(peer);
      if (bit_set.getBitCount(true) == partCount)
        complete_sources--;
      else
        partial_sources--;
      super.remove(peer);
      UpdateTotalAvailability(bit_set, false);
View Full Code Here

TOP

Related Classes of org.jmule.core.sharingmanager.JMuleBitSet

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.