Examples of AESemaphore


Examples of org.gudy.azureus2.core3.util.AESemaphore

    public_key    = _key;
    adapter      = _adapter;
       
    message_mon  = new AEMonitor( "SecureService:messages" );
   
    message_sem = new AESemaphore( "SecureService:messages" );
   
    new AEThread( "SecureService::messageSender", true )
    {
      public void
      runSupport()
View Full Code Here

Examples of org.gudy.azureus2.core3.util.AESemaphore

 
      properties.put( UpdateCheckInstance.PT_UI_STYLE, UpdateCheckInstance.PT_UI_STYLE_NONE );
       
      properties.put(UpdateCheckInstance.PT_UI_DISABLE_ON_SUCCESS_SLIDEY, true);

      final AESemaphore sem = new AESemaphore( "plugin-install" );
     
      final Object[] result = new Object[]{ null };
   
      instance =
        installer.install(
          new InstallablePlugin[]{ sp },
          false,
          properties,
          new PluginInstallationListener() {

            public void
            completed()
            {
              synchronized( SimplePluginInstaller.this ){
               
                completed = true;
              }
             
              result[0] = true;
             
              if ( listener != null ){
               
                listener.finished();
              }
             
              sem.release();
            }
           
            public void
            cancelled()
            {
              result[0] new Exception( "Cancelled" );
             
              if ( listener != null ){
               
                listener.finished();
              }
                           
              sem.release();
            }
           
            public void
            failed(
              PluginException  e )
            {
              result[0] = e;
             
              if ( listener != null ){
               
                listener.finished();
              }
                           
              sem.release();
            }
          });
   
      boolean kill_it;
     
      synchronized( this ){
       
        kill_it = cancelled;
      }

      if ( kill_it ){
       
        instance.cancel();
       
        action_listener.actionComplete( new Exception( "Cancelled" ));
       
        return( false );
      }
     
      instance.addListener(
        new UpdateCheckInstanceListener() {

          public void
          cancelled(
            UpdateCheckInstance    instance )
          {
          }
         
          public void
          complete(
            UpdateCheckInstance    instance )
          {
              Update[] updates = instance.getUpdates();
            
             for ( final Update update: updates ){
              
               ResourceDownloader[] rds = update.getDownloaders();
            
               for ( ResourceDownloader rd: rds ){
                
                 rd.addListener(
                   new ResourceDownloaderAdapter()
                   {
                     public void
                     reportActivity(
                       ResourceDownloader  downloader,
                       String        activity )
                     {                   
                     }
                    
                     public void
                     reportPercentComplete(
                       ResourceDownloader  downloader,
                       int          percentage )
                     {
                       if ( listener != null ){
                        
                         listener.progress(percentage);
                       }
                     }
                   });
               }
             }
          }
        });
         
      sem.reserve();
     
      action_listener.actionComplete( result[0] );

      return( result[0] instanceof Boolean );
     
View Full Code Here

Examples of org.gudy.azureus2.core3.util.AESemaphore

            buffering_method.invoke(player, new Object[] { b_map });

            final TranscodeJob tj = queue.add( dmr, profile, file, true );
                     
            try{
              final AESemaphore sem = new AESemaphore( "analyserWait" );

              synchronized( StreamManager.this ){
               
                if ( cancelled ){
                 
                  throw( new Exception( "Cancelled" ));
                }
               
                active_sem  = sem;
                active_job   = tj;
              }
               
              final long[] properties = new long[3];
             
              final Throwable[] error = { null };
             
              tj.analyseNow(
                new TranscodeAnalysisListener()
                {
                  public void
                  analysisComplete(
                    TranscodeJob          file,
                    TranscodeProviderAnalysis    analysis )
                  {
                    try{                     
                      properties[0] = analysis.getLongProperty( TranscodeProviderAnalysis.PT_DURATION_MILLIS );
                      properties[1] = analysis.getLongProperty( TranscodeProviderAnalysis.PT_VIDEO_WIDTH );
                      properties[2] = analysis.getLongProperty( TranscodeProviderAnalysis.PT_VIDEO_HEIGHT );
                     
                      tj.removeForce();
                     
                    }finally{
                     
                      sem.releaseForever();
                    }
                  }
                 
                  public void
                  analysisFailed(
                    TranscodeJob    file,
                    TranscodeException  e )
                  {
                    try{
                      error[0] = e;
                   
                      tj.removeForce();
                     
                    }finally{
                     
                      sem.releaseForever();
                    }
                  }
                });
             
              new AEThread2( "SM:anmon" )
                {
                  public void
                  run()
                  {
                    boolean  last_preview_mode = preview_mode;
                   
                    while( !sem.isReleasedForever() && !cancelled ){
                     
                      if ( !sem.reserve( 250 )){
                     
                        if ( cancelled ){
                         
                          return;
                        }
                         
                        try{
                          Boolean b = (Boolean)is_active_method.invoke( player, new Object[0] );
                         
                          if ( !b ){
                           
                            cancel();
                           
                            break;
                          }
                        }catch( Throwable e ){ 
                        }
                       
                        if ( last_preview_mode != preview_mode ){
                         
                          last_preview_mode = preview_mode;
                         
                          b_map.put( "msg", MessageText.getString( last_preview_mode?"stream.analysing.media.preview":"stream.analysing.media" ));

                        }
                        DownloadStats stats = download.getStats();
                       
                        b_map.put( "dl_rate", stats.getDownloadAverage());
                        b_map.put( "dl_size", stats.getDownloaded());
                        b_map.put( "dl_time", SystemTime.getMonotonousTime() - stream_start );
                       
                        try{
                          buffering_method.invoke(player, new Object[] { b_map });

                        }catch( Throwable e ){
                         
                        }
                      }
                    }
                  }
                }.start();
               
              sem.reserve();
             
              synchronized( StreamManager.this ){
               
                if ( cancelled ){
                   
View Full Code Here

Examples of org.gudy.azureus2.core3.util.AESemaphore

     
      if ( pi == null ){
       
        listener.updateActivity( "Installing " + name );
       
        final AESemaphore sem = new AESemaphore( "analyserWait" );

        synchronized( StreamManager.this ){
         
          if ( cancelled ){
           
            throw( new Exception( "Cancelled" ));
          }
         
          active_sem  = sem;
        }
       
        final Throwable[] error = { null };
       
        new SimplePluginInstaller(
            id,
              "dlg.install." + id,
              new UIFunctions.actionListener()
            {
              public void
              actionComplete(
                Object    result )
              {
                try{
                  if ( result instanceof Boolean ){
                   
                  }else{
                   
                    error[0] = (Throwable)result;
                  }
                }finally{
                 
                  sem.release();
                }
              }
            });
       
        sem.reserve();
       
        synchronized( StreamManager.this ){
         
          if ( cancelled ){
             
View Full Code Here

Examples of org.gudy.azureus2.core3.util.AESemaphore

        final DHTTransportContact  contact = (DHTTransportContact)data[0];
       
          // move to anti-spoof on cache forwards - gotta do a find-node first
          // to get the random id
       
        final AESemaphore  sem = new AESemaphore( "DHTDB:cacheForward" );
       
        contact.sendFindNode(
            new DHTTransportReplyHandlerAdapter()
            {
              public void
              findNodeReply(
                DHTTransportContact   _contact,
                DHTTransportContact[]  _contacts )
              { 
                anti_spoof_done.add( _contact );
             
                try{
                  // System.out.println( "cacheForward: pre-store findNode OK" );
               
                  List<HashWrapper>        keys  = (List<HashWrapper>)data[1];
                   
                  byte[][]        store_keys     = new byte[keys.size()][];
                  DHTTransportValue[][]  store_values   = new DHTTransportValue[store_keys.length][];
                 
                  keys_published[0] += store_keys.length;
                 
                  for (int i=0;i<store_keys.length;i++){
                   
                    HashWrapper  wrapper = keys.get(i);
                   
                    store_keys[i] = wrapper.getHash();
                   
                    List<DHTDBValueImpl>    values  = republish.get( wrapper );
                   
                    store_values[i] = new DHTTransportValue[values.size()];
             
                    values_published[0] += store_values[i].length;
                   
                    for (int j=0;j<values.size();j++){
                   
                      DHTDBValueImpl  value  = values.get(j);
                       
                        // we reduce the cache distance by 1 here as it is incremented by the
                        // recipients
                     
                      store_values[i][j] = value.getValueForRelay(local_contact);
                    }
                  }
                   
                  List<DHTTransportContact>  contacts = new ArrayList<DHTTransportContact>();
                 
                  contacts.add( contact );
                 
                  republish_ops[0]++;
                 
                  control.putDirectEncodedKeys(
                      store_keys,
                      "Republish cache",
                      store_values,
                      contacts );
                }finally{
                 
                  sem.release();
                }
              }
             
              public void
              failed(
                DHTTransportContact   _contact,
                Throwable        _error )
              {
                try{
                  // System.out.println( "cacheForward: pre-store findNode Failed" );
 
                  DHTLog.log( "cacheForward: pre-store findNode failed " + DHTLog.getString( _contact ) + " -> failed: " + _error.getMessage());
                                     
                  router.contactDead( _contact.getID(), false);
                 
                }finally{
                 
                  sem.release();
                }
              }
            },
            contact.getProtocolVersion() >= DHTTransportUDP.PROTOCOL_VERSION_ANTI_SPOOF2?new byte[0]:new byte[20] );
       
        sem.reserve();
      }
     
      try{
        this_mon.enter();
       
View Full Code Here

Examples of org.gudy.azureus2.core3.util.AESemaphore

 
  public boolean
  isAlive(
    long    timeout )
  {
    final AESemaphore  sem = new AESemaphore( "DHTTransportContact:alive");
   
    final boolean[]  alive = { false };
   
    try{
      sendPing(
        new DHTTransportReplyHandlerAdapter()
        {
          public void
          pingReply(
            DHTTransportContact contact )
          {
            alive[0= true;
           
            sem.release();
          }
         
          public void
          failed(
            DHTTransportContact   contact,
            Throwable         cause )
          {
            sem.release();
          }
        });
     
      sem.reserve( timeout );
   
      return( alive[0] );
     
    }catch( Throwable e ){
     
View Full Code Here

Examples of org.gudy.azureus2.core3.util.AESemaphore

 
    throws SubscriptionException
  {
    SubscriptionDownloader downloader;
   
    AESemaphore  sem = null;
   
    synchronized( active_subscription_downloaders ){
     
      List  waiting = (List)active_subscription_downloaders.get( subs );
     
      if ( waiting != null ){
       
        sem = new AESemaphore( "SS:waiter" );
       
        waiting.add( sem );
       
        if ( !is_auto ){
         
          active_subs_download_is_auto = false;
        }
      }else{
             
        active_subscription_downloaders.put( subs, new ArrayList());
       
        active_subs_download_is_auto = is_auto;
      }
 
      downloader = new SubscriptionDownloader(manager, (SubscriptionImpl)subs );
    }
   
    try{
      if ( sem == null ){
     
        downloader.download();
       
      }else{
       
        sem.reserve();
      }
    }finally{
     
      boolean  was_auto;
     
View Full Code Here

Examples of org.gudy.azureus2.core3.util.AESemaphore

       
        tivo_manager.search();
       
        drive_manager.search();
       
        AESemaphore  sem = new AESemaphore( "DM:search" );
       
        DeviceManagerListener  dm_listener =
          new DeviceManagerListener()
          {
            public void
            deviceAdded(
              Device    device )
            {
              listener.deviceFound( device );
            }
           
            public void
            deviceChanged(
              Device    device )
            {
            }
           
            public void
            deviceAttentionRequest(
              Device    device )
            { 
            }
           
            public void
            deviceRemoved(
              Device    device )
            {
            }

            public void
            deviceManagerLoaded() {
            }
          };
         
        try{
          addListener( dm_listener );
       
          upnp_manager.search();
         
          sem.reserve( millis );
         
        }finally{
         
          synchronized( DeviceManagerImpl.this ){
           
View Full Code Here

Examples of org.gudy.azureus2.core3.util.AESemaphore

  {
    final int RES_CONNECT_FAILED  = 0;
    final int RES_PROXY_FAILED    = 1;
    final int RES_OK        = 3;
 
    final AESemaphore  sem = new AESemaphore( "NetworkAdminSocksProxy:test" );
   
    final int[]  result = { RES_CONNECT_FAILED };
   
    final NetworkAdminException[]    error = { null };
    final ProxyDetails[]        details = {null};
   
    try{
      InetSocketAddress    socks_address =
        new InetSocketAddress( InetAddress.getByName( http_host ), Integer.parseInt(http_port));
     
      final InetSocketAddress  target_address = new InetSocketAddress( TARGET_HOST, TARGET_PORT );
     
      TCPConnectionManager.ConnectListener connect_listener =
        new TCPConnectionManager.ConnectListener()
        {
          public int
          connectAttemptStarted(
            int  default_connect_timeout )
          { 
            return( default_connect_timeout );
          }
   
          public void
          connectSuccess(
            SocketChannel channel )
          {
            final TCPTransportImpl  transport =
              new TCPTransportImpl(
                  (ProtocolEndpointTCP)ProtocolEndpointFactory.createEndpoint( ProtocolEndpoint.PROTOCOL_TCP, target_address ), false, false, null );
           
            transport.setFilter( TCPTransportHelperFilterFactory.createTransparentFilter( channel ));
   
            final long start_time = SystemTime.getCurrentTime();
           
            try{
              String  get_str = VersionCheckClient.getSingleton().getHTTPGetString( true, false );
             
              ByteBuffer  request = ByteBuffer.wrap( get_str.getBytes());
             
              while( request.hasRemaining()){
               
                if ( transport.write( new ByteBuffer[]{ request }, 0, 1 ) < 1 ) {
                 
                  if( SystemTime.getCurrentTime() - start_time > 30*1000 ) {
                   
                    String error = "proxy handshake message send timed out after 30sec";
                   
                    Debug.out( error );
                   
                    throw new IOException( error );
                  }
                 
                  try{
                    Thread.sleep( 50 );
                   
                  }catch( Throwable t ){
                   
                    t.printStackTrace();
                  }
                }
              }
                               
              TCPNetworkManager.getSingleton().getReadSelector().register(
                transport.getSocketChannel(),
                new VirtualChannelSelector.VirtualSelectorListener()
                {
                  private byte[]    reply_buffer = new byte[8192];
                 
                  private ByteBuffer  reply = ByteBuffer.wrap( reply_buffer );
                 
                  public boolean
                  selectSuccess(
                    VirtualChannelSelector   selector,
                    SocketChannel       sc,
                    Object           attachment )
                  {
                    try{
                       if( SystemTime.getCurrentTime() - start_time > 30*1000 ){
                        
                         throw( new Exception( "Timeout" ));
                       }

                       long len = transport.read( new ByteBuffer[]{ reply }, 0, 1 );

                       if ( len <= 0 ){
                        
                         return( false );
                       }
                      
                       String  str = new String( reply_buffer, 0, reply.position());
                                             
                       if ( str.indexOf( NL + NL ) != -1 ){
                       
                         System.out.println( str );
                        
                         String  server_name = "unknown";
                         String  auth    = "none";
                         String  response  = "unknown";
                          
                         StringTokenizer tok = new StringTokenizer( str, "\n" );
                        
                         int  line_num = 0;
                        
                         while( tok.hasMoreTokens()){
                          
                           String  token = tok.nextToken().trim();
                          
                           if ( token.length() == 0 ){
                            
                             continue;
                           }
                          
                           line_num++;
                          
                           if ( line_num == 1 ){
                            
                             int pos = token.indexOf(' ');
                            
                             if ( pos != -1 ){
                              
                               response = token.substring( pos + 1 ).trim();
                             }
                           }else{
                            
                             int  pos = token.indexOf(':');
                            
                             if ( pos != -1 ){
                              
                               String  lhs = token.substring( 0, pos ).trim().toLowerCase( MessageText.LOCALE_ENGLISH );
                               String  rhs = token.substring( pos+1 ).trim();

                               if ( lhs.equals( "server" )){
                                
                                 if ( !response.startsWith( "200" )){
                                 
                                   server_name = rhs;
                                 }
                               }else if ( lhs.equals( "via" )){
                                  
                                 server_name = rhs;
                                
                                 int  p = server_name.indexOf(' ');
                                
                                 if ( p != -1 ){
                                  
                                   server_name = server_name.substring( p+1 ).trim();
                                 }
                                
                               }else if ( lhs.equals( "proxy-authenticate" )){
                                
                                 auth = rhs;
                               }
                             }
                           }
                         }
                        
                         details[0] =
                           new ProxyDetails(
                               server_name,
                               response,
                               auth );
                        
                         transport.close( "Done" );
                        
                         result[0]   = RES_OK;

                         sem.release()
                       
                       }else{
                       
                        TCPNetworkManager.getSingleton().getReadSelector().resumeSelects( transport.getSocketChannel() );
                      }
     
                       return( true );
                     
                    }
                    catch( Throwable t ) {
 
 
                      return false;
                    }
                  }
   
                  public void
                  selectFailure(
                    VirtualChannelSelector   selector,
                    SocketChannel       sc,
                    Object           attachment,
                    Throwable        msg )
                  {
                    result[0]   = RES_PROXY_FAILED;
                    error[0= new NetworkAdminException( "Proxy error", msg );
                   
                    transport.close( "Proxy error" );
                   
                    sem.release();     
                  }
                },
                null );
             
            }catch( Throwable t ) {

              result[0]   = RES_PROXY_FAILED;
              error[0= new NetworkAdminException( "Proxy connect failed", t );
             
              sem.release();            }
          }
         
          public void
          connectFailure(
            Throwable failure_msg )
          {
            result[0]   = RES_CONNECT_FAILED;
            error[0= new NetworkAdminException( "Connect failed", failure_msg );
             
            sem.release();
          }
        };
   
      TCPNetworkManager.getSingleton().getConnectDisconnectManager().requestNewConnection(
          socks_address, connect_listener, ProtocolEndpoint.CONNECT_PRIORITY_MEDIUM );
           
    }catch( Throwable e ){
     
      result[0]   = RES_CONNECT_FAILED;
      error[0= new NetworkAdminException( "Connect failed", e );
     
      sem.release();
    }
   
    if ( !sem.reserve(10000)){
     
      result[0]   = RES_CONNECT_FAILED;
      error[0]   = new NetworkAdminException( "Connect timeout" );
    }
   
View Full Code Here

Examples of org.gudy.azureus2.core3.util.AESemaphore

    if ( !send_azid ){
   
      message.setSendAZID( false );
    }
   
    final AESemaphore sem = new AESemaphore( "PlatformMessengerConfig:syncInvoke" );
   
    final Object[] result = { null };
   
    PlatformMessenger.queueMessage(
      message,
      new PlatformMessengerListener()
      {
        public void
        messageSent(
          PlatformMessage   message )
        {
        }
 
        public void
        replyReceived(
          PlatformMessage   message,
          String         replyType,
          Map         reply )
        {
          try{
            if ( replyType.equals( PlatformMessenger.REPLY_EXCEPTION )){
             
              String    e_message   = (String)reply.get( "message" );

              if ( e_message != null ){
               
                result[0] = new PlatformMessengerException( e_message );

              }else{
               
                String    text   = (String)reply.get( "text" );
               
                Throwable  e     = (Throwable)reply.get( "Throwable" );
               
                if ( text == null && e == null ){
                 
                  result[0] = new PlatformMessengerException( "Unknown error" );
                 
                }else if ( text == null ){
                 
                  result[0] = new PlatformMessengerException( "Failed to send RPC", e );
                 
                }else if ( e == null ){
                 
                  result[0] = new PlatformMessengerException( text );
                 
                }else{
                 
                  result[0] = new PlatformMessengerException( text, e );
                }
              }
            }else{
             
              result[0] = reply;
            }
          }finally{
           
            sem.release();
          }
        }
      });
   
    sem.reserve();
   
    if ( result[0] instanceof PlatformMessengerException ){
     
      throw((PlatformMessengerException)result[0]);
    }
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.