Examples of AutoResetEvent


Examples of com.ngt.jopenmetaverse.shared.sim.events.AutoResetEvent

      Runnable runnable = new Runnable(){
        public void run() {
          try{
            if (wearable.Asset == null)
            {
              final AutoResetEvent downloadEvent = new AutoResetEvent(false);

              MethodDelegate<Void, AssetReceivedCallbackArgs> assetReceivedCallback
              = new MethodDelegate<Void, AssetReceivedCallbackArgs>()
              {
                public Void execute(AssetReceivedCallbackArgs e) {
                  AssetDownload transfer = e.getTransfer();
                  Asset asset = e.getAsset();
                  if (transfer.Success && asset instanceof AssetWearable)
                  {
                    // Update this wearable with the freshly downloaded asset
                    wearable.Asset = (AssetWearable)asset;

                    if (wearable.Asset.Decode())
                    {
                      DecodeWearableParams(wearable);
                      JLogger.debug("Downloaded wearable asset " + wearable.WearableType + " with " + wearable.Asset.Params.size() +
                          " visual params and " + wearable.Asset.Textures.size() + " textures");

                    }
                    else
                    {
                      wearable.Asset = null;
                      JLogger.error("Failed to decode asset:" + "\n" +
                          Utils.bytesToHexDebugString(asset.AssetData, ""));
                    }
                  }
                  else
                  {
                    JLogger.warn("Wearable " + wearable.AssetID + "(" + wearable.WearableType + ") failed to download, " +
                        transfer.Status);
                  }

                  downloadEvent.set();
                  return null;
                }
              };

              // Fetch this wearable asset
              Client.assets.RequestAsset(wearable.AssetID, wearable.AssetType, true, assetReceivedCallback);


              if (!downloadEvent.waitOne(WEARABLE_TIMEOUT))
              {
                JLogger.error("Timed out downloading wearable asset " + wearable.AssetID + " (" + wearable.WearableType + ")");
                success.set(false);
              }
View Full Code Here

Examples of com.ngt.jopenmetaverse.shared.sim.events.AutoResetEvent

    for(final UUID textureID: textureIDs)
    {
      Runnable runnable = new Runnable(){
        public void run() {
          try{
            final AutoResetEvent downloadEvent = new AutoResetEvent(false);

            MethodDelegate<Void, TextureDownloadCallbackArgs> textureDownloadCallback =
                new MethodDelegate<Void, TextureDownloadCallbackArgs>()
                {
              public Void execute(TextureDownloadCallbackArgs e)
              {
                try{
                  TextureRequestState state = e.getState();
                  AssetTexture assetTexture = e.getAssetTexture();
                  if (state == TextureRequestState.Finished)
                  {
                    JLogger.info("Downloaded Texture " + textureID + " Proceeding for backing...");
                    if(assetTexture.Decode())
                    {
                      for (int i = 0; i < Textures.length; i++)
                      {
                        if (Textures[i].TextureID.equals(textureID))
                        {
                          JLogger.info("Setting AssetTextureIndex " + i + " to "+ textureID );
                          Textures[i].Texture = assetTexture;
                        }
                      }
                    }
                    else
                      throw new Exception("Failed to decode Asset texture: " + textureID );
                  }
                  else
                  {
                    JLogger.warn("Texture " + textureID + " failed to download, one or more bakes will be incomplete");
                  }

                }
                catch(Exception ex)
                {JLogger.warn("Texture " + textureID + " failed to download or parsed one or more bakes will be incomplete\n" + Utils.getExceptionStackTraceAsString(ex));}
                finally
                { downloadEvent.set();}
                return null;
              }};

              Client.assets.RequestImage(textureID, textureDownloadCallback);

              downloadEvent.waitOne(TEXTURE_TIMEOUT);
          }
          catch(Exception e)
          {
            JLogger.warn("Exception while running the task: \n" + Utils.getExceptionStackTraceAsString(e));
          }
View Full Code Here

Examples of com.ngt.jopenmetaverse.shared.sim.events.AutoResetEvent

  /// <param name="textureData">Five channel JPEG2000 texture data to upload</param>
  /// <returns>UUID of the newly created asset on success, otherwise UUID.Zero</returns>
  private UUID UploadBake(byte[] textureData) throws Exception
  {
    final UUID[] bakeID = new UUID[]{UUID.Zero};
    final AutoResetEvent uploadEvent = new AutoResetEvent(false);

    MethodDelegate<Void, BakedTextureUploadedCallbackArgs> bakedTextureUploadedCallback
    = new MethodDelegate<Void, BakedTextureUploadedCallbackArgs>()
    {
      public Void execute(
          BakedTextureUploadedCallbackArgs e) {
        UUID newAssetID = e.getNewAssetID();
        bakeID[0] = newAssetID;
        uploadEvent.set();
        return null;
      }

    };
    JLogger.debug(String.format("Going to wait %d ms for texture to get uploaded", UPLOAD_TIMEOUT));

    Client.assets.RequestUploadBakedTexture(textureData,bakedTextureUploadedCallback);


    // FIXME: evalute the need for timeout here, RequestUploadBakedTexture() will
    // timout either on Client.Settings.TRANSFER_TIMEOUT or Client.Settings.CAPS_TIMEOUT
    // depending on which upload method is used.
    uploadEvent.waitOne(UPLOAD_TIMEOUT);
    JLogger.debug("Successfully Uploaded baked Texture got asset ID: " + bakeID[0]);
    return bakeID[0];
  }
View Full Code Here

Examples of com.ngt.jopenmetaverse.shared.sim.events.AutoResetEvent

  /// handshake has completed or when <code>Settings.LOGOUT_TIMEOUT</code>
  /// has expired and the network layer is manually shut down
  /// </summary>
  public void Logout()
  {
    final AutoResetEvent logoutEvent = new AutoResetEvent(false);
    //        EventHandler<LoggedOutEventArgs> callback = delegate(Object sender, LoggedOutEventArgs e) { logoutEvent.Set(); };
    //
    //        LoggedOut += callback;

    EventObserver<LoggedOutEventArgs> callback = new EventObserver<LoggedOutEventArgs>(){
      @Override
      public void handleEvent(Observable o, LoggedOutEventArgs arg) {
        logoutEvent.set();
      }
    };

    OnLoggedOut.addObserver(callback);

    // Send the packet requesting a clean logout
    RequestLogout();

    // Wait for a logout response. If the response is received, shutdown
    // will be fired in the callback. Otherwise we fire it manually with
    // a NetworkTimeout type
    try {
      if (!logoutEvent.waitOne(client.settings.LOGOUT_TIMEOUT))
        Shutdown(DisconnectType.NetworkTimeout);
    } catch (InterruptedException e) {
      JLogger.warn("Thread got interruped while waiting for logout event");
      Shutdown(DisconnectType.NetworkTimeout);
    }
View Full Code Here

Examples of com.ngt.jopenmetaverse.shared.sim.events.AutoResetEvent

        {
          gesture[0] = gestureCache.get(gestureID);
        }
        else
        {
          final AutoResetEvent gotAsset = new AutoResetEvent(false);

          MethodDelegate<Void, AssetReceivedCallbackArgs> assetReceivedCallback = new MethodDelegate<Void, AssetReceivedCallbackArgs>()
              {
            public Void execute(
                AssetReceivedCallbackArgs e) {
              if (e.getTransfer().Success)
              {
                gesture[0] = (AssetGesture)e.getAsset();
              }

              gotAsset.set();
              return null;
            }

              };
              Client.assets.RequestAsset(gestureID, AssetType.Gesture, true,
                  assetReceivedCallback);

              try {
                gotAsset.waitOne(30 * 1000);
              } catch (InterruptedException e1) {
                JLogger.error("Error while playing a gesture: " + Utils.getExceptionStackTraceAsString(e1));
              }

              if (gesture[0] != null && gesture[0].Decode())
View Full Code Here

Examples of com.ngt.jopenmetaverse.shared.sim.events.AutoResetEvent

    if (Client.network.getCurrentSim() == null ||
        Client.network.getCurrentSim().Caps == null ||
        !Client.network.getCurrentSim().Caps.isEventQueueRunning())
    {
      // Wait a bit to see if the event queue comes online
      final AutoResetEvent queueEvent = new AutoResetEvent(false);
      //                    EventHandler<EventQueueRunningEventArgs> queueCallback =
      //                        delegate(Object sender, EventQueueRunningEventArgs e)
      //                        {
      //                            if (e.getSimulator() == Client.network.getCurrentSim())
      //                                queueEvent.Set();
      //                        };
      //   
      //                    Client.network.EventQueueRunning += queueCallback;
      //                    queueEvent.WaitOne(10 * 1000, false);
      //                    Client.network.EventQueueRunning -= queueCallback;

      EventObserver<EventQueueRunningEventArgs> queueCallback = new EventObserver<EventQueueRunningEventArgs>()
          { @Override
        public void handleEvent(Observable o, EventQueueRunningEventArgs e)
          {
            if (e.getSimulator().equals(Client.network.getCurrentSim()))
              queueEvent.set();
          }
          };
          Client.network.RegisterOnEventQueueRunningCallback(queueCallback);
          queueEvent.waitOne(10 * 1000);
          Client.network.UnregisterOnEventQueueRunningCallback(queueCallback);                   
    }

    teleportStat = TeleportStatus.None;
    teleportEvent.reset();
View Full Code Here

Examples of com.ngt.jopenmetaverse.shared.sim.events.AutoResetEvent

        threadPool.execute(new Runnable(){
          public void run()
          {
            try
            {
            final AutoResetEvent gotMuteList = new AutoResetEvent(false);
            String fileName = Utils.bytesWithTrailingNullByteToString(packet.MuteData.Filename);
            String muteList = "";
            final BigInteger[] xferID = new BigInteger[]{new BigInteger("0")};
            final byte[][] assetData = new byte[1][];
   
            EventObserver<XferReceivedEventArgs> xferCallback = new EventObserver<XferReceivedEventArgs>()
                {
                  @Override
                  public void handleEvent(Observable sender,
                      XferReceivedEventArgs xe) {
                    if (xe.getXfer().XferID.equals(xferID[0]))
                      {
                        assetData[0] = xe.getXfer().AssetData;
                        gotMuteList.set();
                      }
                  } 
                };
           
          Client.assets.registerOnXferReceived(xferCallback);
           
          xferID[0] = Client.assets.RequestAssetXfer(fileName, true, false, UUID.Zero, AssetType.Unknown, true);
   
            if (gotMuteList.waitOne(60 * 1000))
            {
              muteList = Utils.bytesWithTrailingNullByteToString(assetData[0]);
   
              synchronized (MuteList.getDictionary())
              {
View Full Code Here

Examples of com.ngt.jopenmetaverse.shared.sim.events.AutoResetEvent

  /// <param name="timeoutMS"></param>
  /// <returns></returns>
  public List<MapItem> MapItems(BigInteger regionHandle, GridItemType item, GridLayerType layer, int timeoutMS) throws InterruptedException
  {
    List<MapItem> itemList = null;
    final AutoResetEvent itemsEvent = new AutoResetEvent(false);

    //            EventHandler<GridItemsEventArgs> callback =
    //                delegate(Object sender, GridItemsEventArgs e)
    //                {
    //                    if (e.Type == GridItemType.AgentLocations)
    //                    {
    //                        itemList = e.Items;
    //                        itemsEvent.Set();
    //                    }
    //                };
    //
    //            GridItems += callback;
    //
    //            RequestMapItems(regionHandle, item, layer);

    final Object[] itemListArray = new Object[]{null}
    EventObserver<GridItemsEventArgs> callback = new EventObserver<GridItemsEventArgs>()
        {
      @Override
      public void handleEvent(Observable o, GridItemsEventArgs e) {
        if (e.getType().equals(GridItemType.AgentLocations))
        {
          itemListArray[0] = e.getItems();
          itemsEvent.set();
        }} 
        };
        itemList = (List<MapItem>)itemListArray[0];

        OnGridItems.addObserver(callback);
        RequestMapItems(regionHandle, item, layer);

        itemsEvent.waitOne(timeoutMS);

        OnGridItems.deleteObserver(callback);

        return itemList;
  }
View Full Code Here

Examples of com.ngt.jopenmetaverse.shared.sim.events.AutoResetEvent

      region[0] = Regions.get(name);
      return true;
    }
    else
    {
      final AutoResetEvent regionEvent = new AutoResetEvent(false);

      EventObserver<GridRegionEventArgs> callback = new EventObserver<GridRegionEventArgs>()
          { @Override
        public void handleEvent(Observable o, GridRegionEventArgs e)
          {
            if (e.getRegion().Name.equals(name))
              regionEvent.set();
          }
          };

          OnGridRegion.addObserver(callback);

          RequestMapRegion(name, layer);
          regionEvent.waitOne(Client.settings.MAP_REQUEST_TIMEOUT);

          OnGridRegion.deleteObserver(callback);

          if (Regions.containsKey(name))
          {
View Full Code Here

Examples of com.ngt.jopenmetaverse.shared.sim.events.AutoResetEvent

        synchronized(PendingUploadLock)
        {
            final int UPLOAD_CONFIRM_TIMEOUT = 20 * 1000;
            final int SLEEP_INTERVAL = 50;
            int t = 0;
            AutoResetEvent sleepEvent = new AutoResetEvent(false);
            while (WaitingForUploadConfirm && t < UPLOAD_CONFIRM_TIMEOUT)
            {
//                System.Threading.Thread.Sleep(SLEEP_INTERVAL);
                sleepEvent.waitOne(SLEEP_INTERVAL);
                t += SLEEP_INTERVAL;
            }

            if (t < UPLOAD_CONFIRM_TIMEOUT)
            {
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.