Examples of AutoResetEvent


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

         
          threadPool.execute(new Runnable(){
        public void run()
        {
                  final UUID transactionID = UUID.Random();
                  final AutoResetEvent uploadEvent = new AutoResetEvent(false);
                  EventObserver<AssetUploadEventArgs> udpCallback = new EventObserver<AssetUploadEventArgs>()
                      {
              @Override
              public void handleEvent(Observable sender,
                  AssetUploadEventArgs e) {
                if (e.getUpload().ID.equals(transactionID))
                              {
                                  uploadEvent.set();
                                  uploadCallback.execute(new BakedTextureUploadedCallbackArgs(e.getUpload().Success ? e.getUpload().AssetID : UUID.Zero));
                              }
              }
                      };
                

                  onAssetUploaded.addObserver(udpCallback);

                  boolean success;
                  try
                  {
                    UploadRequestResult uploadResult = RequestUpload(AssetType.Texture, textureData, true, transactionID);
                      success = uploadEvent.waitOne(Client.settings.TRANSFER_TIMEOUT);
                  }
                  catch (Exception e)
                  {
                    JLogger.warn(e);
                      success = false;
View Full Code Here

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

    _Running = false;
   
    // Pre-configure autoreset events and threadpool slots
    for (int i = 0; i < maxTextureRequests; i++)
    {
      resetEvents[i] = new AutoResetEvent(true);
      threadpoolSlots[i] = -1;
    }

    // Handle client connected and disconnected events
    client.network.RegisterLoginProgressCallback(new EventObserver<LoginProgressEventArgs>()
View Full Code Here

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

  /// <param name="timeoutMS">a integer representing the number of milliseconds to wait for results</param>
  /// <returns>An <seealso cref="InventoryItem"/> object on success, or null if no item was found</returns>
  /// <remarks>Items will also be sent to the <seealso cref="InventoryManager.OnItemReceived"/> event</remarks>
  public InventoryItem FetchItem(final UUID itemID, UUID ownerID, int timeoutMS) throws InterruptedException
  {
    final AutoResetEvent fetchEvent = new AutoResetEvent(false);
    InventoryItem fetchedItem = null;

    final InventoryItem[] fetchedItemArray = new InventoryItem[]{null};
    EventObserver<ItemReceivedEventArgs> callback =
        new EventObserver<ItemReceivedEventArgs>()
        {

      @Override
      public void handleEvent(Observable o, ItemReceivedEventArgs e) {
        if (e.getItem().UUID.equals(itemID))
        {
          fetchedItemArray[0] = e.getItem();
          fetchEvent.set();
        }
      }           
        };
        fetchedItem = fetchedItemArray[0];

        onItemReceived.addObserver(callback);
        RequestFetchInventory(itemID, ownerID);

        fetchEvent.waitOne(timeoutMS);
        onItemReceived.deleteObserver(callback);

        return fetchedItem;
  }
View Full Code Here

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

  /// requested</remarks>
  public List<InventoryBase> FolderContents(final UUID folder, UUID owner, boolean folders, boolean items,
      InventorySortOrder order, int timeoutMS) throws InterruptedException, InventoryException
      {
    List<InventoryBase> objects = null;
    final AutoResetEvent fetchEvent = new AutoResetEvent(false);

    EventObserver<FolderUpdatedEventArgs> callback = new EventObserver<FolderUpdatedEventArgs>() { 
      @Override
      public void handleEvent(Observable o, FolderUpdatedEventArgs e)
      {
        if (e.getFolderID().equals(folder)   && _Store.get(folder) instanceof InventoryFolder)
        {
          try{
            // InventoryDescendentsHandler only stores DescendendCount if both folders and items are fetched.
            if (_Store.GetContents(folder).size() >= ((InventoryFolder)_Store.get(folder)).DescendentCount)
            {
              fetchEvent.set();
            }
          }
          catch(InventoryException ex)
          { JLogger.error("Error in Inventory " + Utils.getExceptionStackTraceAsString(ex));}
        }
        else
        {
          fetchEvent.set();
        }
      }};

      onFolderUpdated.addObserver(callback);

      RequestFolderContents(folder, owner, folders, items, order);
      if (fetchEvent.waitOne(timeoutMS))
        objects = _Store.GetContents(folder);

      onFolderUpdated.deleteObserver(callback);

      return objects;
View Full Code Here

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

  /// <param name="timeoutMS">milliseconds to wait for a reply</param>
  /// <returns>Found items <seealso cref="UUID"/> or <seealso cref="UUID.Zero"/> if
  /// timeout occurs or item is not found</returns>
  public UUID FindObjectByPath(UUID baseFolder, UUID inventoryOwner, final String path, int timeoutMS) throws InterruptedException
  {
    final AutoResetEvent findEvent = new AutoResetEvent(false);
    final UUID[] foundItem = new UUID[] {UUID.Zero};

    EventObserver<FindObjectByPathReplyEventArgs> callback = new EventObserver<FindObjectByPathReplyEventArgs>()
        {

      @Override
      public void handleEvent(Observable o,
          FindObjectByPathReplyEventArgs e) {
        if (e.getPath().equals(path))
        {
          foundItem[0] = e.getInventoryObjectID();
          findEvent.set();
        }
      }};
      onFindObjectByPathReply.addObserver(callback);

      RequestFindObjectByPath(baseFolder, inventoryOwner, path);
      findEvent.waitOne(timeoutMS);

      onFindObjectByPathReply.deleteObserver(callback);

      return foundItem[0];
View Full Code Here

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

  /// <remarks>This request blocks until the response from the simulator arrives
  /// or timeoutMS is exceeded</remarks>
  public List<InventoryBase> GetTaskInventory(final UUID objectID, long objectLocalID, int timeoutMS) throws InterruptedException, UnsupportedEncodingException
  {
    final String[] filename = new String[]{null};
    final AutoResetEvent taskReplyEvent = new AutoResetEvent(false);

    EventObserver<TaskInventoryReplyEventArgs> callback = new EventObserver<TaskInventoryReplyEventArgs>()
        //          delegate(Object sender, TaskInventoryReplyEventArgs e)
        {
      @Override
      public void handleEvent(Observable o,
          TaskInventoryReplyEventArgs e) {
        if (e.getItemID().equals(objectID))
        {
          filename[0] = e.getAssetFilename();
          taskReplyEvent.set();
        }             
      }

        };

        onTaskInventoryReply.addObserver(callback);

        RequestTaskInventory(objectLocalID);

        if (taskReplyEvent.waitOne(timeoutMS))
        {
          onTaskInventoryReply.deleteObserver(callback);

          if (!Utils.isNullOrEmpty(filename[0]))
          {
            final byte[][] assetData = new byte[][]{null};
            final BigInteger[] xferID = new BigInteger[]{new BigInteger("0")};
            final AutoResetEvent taskDownloadEvent = new AutoResetEvent(false);

            EventObserver<XferReceivedEventArgs> xferCallback = new EventObserver<XferReceivedEventArgs>()
                //                  delegate(Object sender, XferReceivedEventArgs e)
                {
              @Override
              public void handleEvent(Observable o,
                  XferReceivedEventArgs e) {
                if (e.getXfer().XferID.equals(xferID[0]))
                {
                  assetData[0] = e.getXfer().AssetData;
                  taskDownloadEvent.set();
                }}
                };
                Client.assets.registerOnXferReceived(xferCallback);

                // Start the actual asset xfer
                xferID[0] = Client.assets.RequestAssetXfer(filename[0], true, false, UUID.Zero, AssetType.Unknown, true);

                if (taskDownloadEvent.waitOne(timeoutMS))
                {
                  Client.assets.unregisterOnXferReceived(xferCallback);

                  String taskList = Utils.bytesWithTrailingNullByteToString(assetData[0]);
                  return ParseTaskInventory(taskList);
View Full Code Here

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

    int serverPort = 9786;
    startUDPServer(serverPort);

    UDPPacketBuffer[] bufArray = new UDPPacketBuffer[1];
    InetSocketAddress saddress;
    AutoResetEvent onPacketReceive = new AutoResetEvent(false);
    try {
      saddress = new InetSocketAddress(Inet4Address.getByName("127.0.0.1"), serverPort);
      UDPBase udp = createUDPBase(saddress, bufArray, onPacketReceive);
      udp.Start();
      byte[] data = Utils.stringToBytes("This is ping message");

      sendAndReceiveData(udp, saddress, bufArray, data, data.length);
      if(!onPacketReceive.waitOne(5000))
      {
        Assert.fail("No Packet Recieved from UDP Server");
      }
    } catch (Exception e) {
      Assert.fail();
View Full Code Here

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

    startUDPServer(serverPort);

    UDPPacketBuffer[] bufArray = new UDPPacketBuffer[1];
    InetSocketAddress saddress;
    try {
      AutoResetEvent onPacketReceive = new AutoResetEvent(false);
      saddress = new InetSocketAddress(Inet4Address.getByName("127.0.0.1"), serverPort);
      UDPBase udp = createUDPBase(saddress, bufArray, onPacketReceive);
      udp.Start();

      File[] files = getFileList(fileLocation.getPath());

      for(File f: files)
      {
        JLogger.debug("Reading from File: " + f.getAbsolutePath());
        byte[] data = getFileBytes(f);
        sendAndReceiveData(udp, saddress, bufArray, data, data.length);
        if(!onPacketReceive.waitOne(5000))
        {
          Assert.fail("No Packet Recieved from UDP Server");
        }     
      }
View Full Code Here

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

  {
    try
    {
      final int max = 3000;
      final int p = 50;
      final AutoResetEvent event = new AutoResetEvent(false);
      DownloadManager downloadManager = new DownloadManager();
      final AtomicInteger noItemsDownloaded = new AtomicInteger(0);
      for(int j =0; j< max/p; j++)
      {
      for(int i = 0; i< p; i++)
      {
        final int itemno = i;
        DownloadRequest request = new DownloadRequest(fileServer.createURI("/files/json/ex1.txt"), 5000,
            "*/*", new MethodDelegate<Void,HttpBaseDownloadProgressArg>()
            {
          public Void execute(HttpBaseDownloadProgressArg e) {
            return null;
          }

            }, new MethodDelegate<Void,HttpBaseRequestCompletedArg>()
            {
              public Void execute(HttpBaseRequestCompletedArg e) {
                if(e.getError() != null)
                {
                  System.out.println(Utils.getExceptionStackTraceAsString(e.getError()));
                  event.set();
                }
                else if(e.getResponseData().length <= 0)
                {
                  event.set();
                }
                Assert.assertNull(e.getError());
                Assert.assertTrue(e.getResponseData().length > 0);
                noItemsDownloaded.incrementAndGet();
                System.out.println("Downloaded item: " + noItemsDownloaded.intValue() + " of size " + e.getResponseData().length);
                if(max <= noItemsDownloaded.intValue())
                  event.set();
                return null;
              }
            });
        downloadManager.QueueDownlad(request);
      }
        PlatformUtils.sleep(500);
      }
      System.out.println("Main Thread is going to sleep...");
      event.waitOne();
    }
    catch(Exception e)
    {Assert.fail(Utils.getExceptionStackTraceAsString(e));}
  }
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.