Examples of DiskManager


Examples of org.gudy.azureus2.core3.disk.DiskManager

                {
                  public void
                  peerManagerWillBeAdded(
                    PEPeerManager  peer_manager )
                  {
                      DiskManager  disk_manager = peer_manager.getDiskManager();
                     
                      DiskManagerPiece[]  pieces = disk_manager.getPieces();

                            int startPiece = setStartPieceBasedOnMode(testMode,pieces.length);
                           
                            for ( int i=startPiece; i<pieces.length; i++ ){
                                pieces[i].setDone( true );
View Full Code Here

Examples of org.gudy.azureus2.core3.disk.DiskManager

    EnhancedDownloadManagerFile  efile = enhanced_files[ file_index ];
   
    DiskManagerFileInfo file = efile.getFile();
   
    DiskManager dm = download_manager.getDiskManager();
   
    if ( dm == null ){
     
      if ( file.getDownloaded() == file.getLength()){
       
        return( file.getLength() - file_start_offset );
      }
     
      return( -1 );
    }
   
    int  piece_size = dm.getPieceLength();
   
    DiskManagerFileInfo[]   files = dm.getFiles();
   
    long  start_index = efile.getByteOffestInTorrent() + file_start_offset;
 
   
    int  first_piece_index   = (int)( start_index / piece_size );
    int  first_piece_offset  = (int)( start_index % piece_size );
    int  last_piece_index  = file.getLastPieceNumber();
   
    DiskManagerPiece[]  pieces = dm.getPieces();
   
    DiskManagerPiece  first_piece = pieces[first_piece_index];
       
    long  available = 0;
   
View Full Code Here

Examples of org.gudy.azureus2.core3.disk.DiskManager

        return( piece_rtas );
      }
     
      last_recalc  = mono_now;
               
        DiskManager  disk_manager = download_manager.getDiskManager();

        progressiveStats stats = progressive_stats;

        EnhancedDownloadManagerFile file = stats.getFile();

        if ( disk_manager == null || stats == null || file.isComplete()){
            
          deactivate( picker );
         
          return( null );
        }
       
      long  abs_provider_pos = stats.getCurrentProviderPosition( true );
       long  rel_provider_pos = stats.getCurrentProviderPosition( false );

      long  buffer_bytes = stats.getBufferBytes();
      
        boolean buffering = getProgressivePlayETA() >= 0;
       
        if ( buffering ){
         
        long   buffer_size = getContiguousAvailableBytes( file.getIndex(), rel_provider_pos, buffer_bytes );
       
        if ( buffer_size == buffer_bytes ){
         
          buffering = false;
        }
        }
         
        if ( buffering != is_buffering ){
       
          if ( buffering ){
           
            log( "Switching to buffer mode" );
           
          }else{
           
            log( "Switching to RTA mode" );
          }
         
          is_buffering = buffering;
        }
       
      long  piece_size = disk_manager.getPieceLength();
                    
      int    start_piece = (int)( abs_provider_pos / piece_size );

      int    end_piece  = file.getFile().getLastPieceNumber();
           
      piece_rtas = new long[ picker.getNumberOfPieces()];

      long  now = SystemTime.getCurrentTime();

      if ( is_buffering ){
               
        for (int i=start_piece;i<=end_piece;i++){
         
            // not bothered about times here but need to use large increments to ensure
            // that pieces are picked in order even for slower peers
         
          piece_rtas[i] = now+(i*60000);
        }
 
        long   buffer_size = getContiguousAvailableBytes( file.getIndex(), rel_provider_pos, 0 );
                    
          if ( last_buffer_size != buffer_size ){
           
            last_buffer_size = buffer_size;
           
            last_buffer_size_time = now;
           
          }else{
           
            if ( now < last_buffer_size_time ){
             
              last_buffer_size_time = now;
             
            }else{
             
              long  stalled_for = now - last_buffer_size_time;
             
               long  dl_speed = progressive_stats.getDownloadBytesPerSecond();
             
               if ( dl_speed > 0 ){
                
                 long  block_time = (DiskManager.BLOCK_SIZE * 1000) / dl_speed;
                
                 if ( stalled_for > Math.max( 5000, 5*block_time )){
               
                   long  target_rta = now + block_time;
                  
                   int  blocked_piece_index = (int)((abs_provider_pos + buffer_size ) / disk_manager.getPieceLength());
                  
                   DiskManagerPiece[] pieces = disk_manager.getPieces();
                                    
                   if ( blocked_piece_index < pieces.length ){
                                        
                     if ( pieces[blocked_piece_index].isDone()){
                      
View Full Code Here

Examples of org.gudy.azureus2.core3.disk.DiskManager

     
      discard_rate_average.update( discards - last_discard_bytes );
     
      last_discard_bytes = discards;
     
      DiskManager  disk_manager = download_manager.getDiskManager();
     
      PiecePicker  picker = current_piece_pickler;

      if ( getStreamBytesPerSecondMin() > 0 && disk_manager != null && picker != null ){
       
        List  providers = picker.getRTAProviders();
       
        long  max_cp  = 0;
       
        PieceRTAProvider  best_provider = null;
       
        for (int i=0;i<providers.size();i++){
         
          PieceRTAProvider  provider = (PieceRTAProvider)providers.get(i);
         
          if ( provider.getStartTime() > 0 ){
           
            long  cp = provider.getCurrentPosition();
           
            if ( cp >= max_cp ){
             
              best_provider = provider;
             
              max_cp  = cp;
            }
          }
        }

        updateCurrentProvider( best_provider );
                       
        if ( best_provider != null ){
               
            // the file channel provider will try best-effort-RTA based which will result
            // in high discard - back it off based on how much slack we have
         
          long relative_pos = getCurrentProviderPosition( false );
         
          long buffer_bytes = getContiguousAvailableBytes( primary_file.getIndex(), relative_pos, getStreamBytesPerSecondMin() * 60 );
         
          long buffer_secs = buffer_bytes / getStreamBytesPerSecondMin();
         
            // don't be too aggresive with small buffers
         
          buffer_secs = Math.max( 10, buffer_secs );
         
          best_provider.setBufferMillis( 15*1000, buffer_secs * 1000 );
        }
       
        DiskManagerPiece[] pieces = disk_manager.getPieces();
       
        actual_bytes_to_download   = 0;
        weighted_bytes_to_download  = 0;
       
        int  first_incomplete_piece = -1;
       
        int  piece_size = disk_manager.getPieceLength();
       
        int  last_piece_number = primary_file.getFile().getLastPieceNumber();
       
        for (int i=(int)(provider_byte_position/piece_size);i<=last_piece_number;i++){
         
View Full Code Here

Examples of org.gudy.azureus2.core3.disk.DiskManager

    DiskManagerPiece[] dm_pieces = null;

    PEPeerManager pm = dlm.getPeerManager();

    DiskManager dm = dlm.getDiskManager();

    if (pm == null || dm == null) {
      canvas.redraw();
      return;
    }

    dm_pieces = dm.getPieces();

    if (dm_pieces == null || dm_pieces.length == 0) {
      canvas.redraw();
      return;
    }
View Full Code Here

Examples of org.gudy.azureus2.core3.disk.DiskManager

      }
    } else {
      gcImage = new GC(image);
    }

    DiskManager disk_manager = infoObj.getDiskManager();

    DiskManagerPiece[] pieces = disk_manager == null ? null
        : disk_manager.getPieces();

    int nbPieces = infoObj.getNbPieces();

    try {
View Full Code Here

Examples of org.gudy.azureus2.core3.disk.DiskManager

    DiskManagerPiece[] dm_pieces = null;

    PEPeerManager pm = peer.getManager();

    DiskManager dm = pm.getDiskManager();

    dm_pieces = dm.getPieces();

    int iNumCols = bounds.width / BLOCK_SIZE;
    int iNeededHeight = (((dm.getNbPieces() - 1) / iNumCols) + 1)
        * BLOCK_SIZE;
    if (sc.getMinHeight() != iNeededHeight) {
      sc.setMinHeight(iNeededHeight);
      sc.layout(true, true);
      bounds = peerInfoCanvas.getClientArea();
View Full Code Here

Examples of org.gudy.azureus2.core3.disk.DiskManager

           
            double x = 0;
           
            if ( core_download.getState() == DownloadManager.STATE_CHECKING ){
             
              DiskManager dm = core_download.getDiskManager();
             
              if ( dm != null ){
               
                x = ((double)stats.getCompleted())/1000;
              }
View Full Code Here

Examples of org.gudy.azureus2.plugins.disk.DiskManager

                  new AEThread2( "" )
                  {
                    public void
                    run()
                    {
                      DiskManager dm  = peer_manager.getDiskManager();
                                           
                      File f = new File( "C:\\temp\\capture2.pcap" );
                     
                      long  len = f.length();
                     
                      int  piece_size   = (int)download.getTorrent().getPieceSize();

                      int  max_blocks = piece_size / DiskManager.BLOCK_SIZE;
                     
                      List<long[]> chunks = new ArrayList<long[]>();
                     
                      long i = 0;
                     
                      while( i < len ){
                       
                        int    blocks = ((int)(Math.random()*max_blocks))+1;
                       
                        long  rem_in_piece = i - ((i/piece_size)*piece_size);
                       
                        if ( rem_in_piece == 0 ){
                         
                          rem_in_piece = piece_size;
                        }
                       
                        rem_in_piece = Math.min( len-i, rem_in_piece);
                       
                        long  chunk_size = Math.min(rem_in_piece,blocks*DiskManager.BLOCK_SIZE);
                       
                        chunks.add( new long[]{ i, chunk_size });
                       
                        i += chunk_size;
                      }
                                       
                      Utilities utils = plugin_interface.getUtilities();
                     
                      try{
                        RandomAccessFile raf = new RandomAccessFile(f, "r" );
                       
                        while( !chunks.isEmpty()){
                         
                          long[] chunk = chunks.remove((int)(Math.random()*chunks.size()));
                         
                          final long  position   = chunk[0];
                          final int  size    = (int)chunk[1];
                         
                          raf.seek( position );
                         
                          byte[] buffer = new byte[ size ];
                         
                          raf.read( buffer );
                         
                          int  piece_number   = (int)(position/piece_size);
                          int  piece_offset  = (int)(position % piece_size);
                                             
                          dm.write(
                            piece_number,
                            piece_offset,
                            utils.allocatePooledByteBuffer( buffer ),
                            new DiskManagerWriteRequestListener()
                            {
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.