home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 July / PCO_07_97.ISO / NET_COM / cc32e40.exe / nav40.z / java40.jar / netscape / applet / EventQueue.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-06-07  |  1.5 KB  |  71 lines

  1. package netscape.applet;
  2.  
  3. class EventQueue {
  4.    static final int MAX_EVENTS_NUMBER = 400;
  5.    NEvent eventList = new AppletEvent(-1);
  6.    int eventsCount = 0;
  7.  
  8.    public EventQueue() {
  9.    }
  10.  
  11.    public synchronized void sendEvent(NEvent var1) {
  12.       this.eventList.appendElement(var1);
  13.       this.notifyAll();
  14.    }
  15.  
  16.    public synchronized void sendGUIEvent(NEvent var1) {
  17.       if (this.eventsCount <= 400) {
  18.          this.eventList.appendElement(var1);
  19.          ++this.eventsCount;
  20.          this.notifyAll();
  21.       }
  22.  
  23.    }
  24.  
  25.    public synchronized NEvent getNextEvent() {
  26.       Object var1 = null;
  27.  
  28.       while(this.eventList.isEmptyList()) {
  29.          try {
  30.             this.wait();
  31.          } catch (InterruptedException var2) {
  32.             return (NEvent)var1;
  33.          }
  34.       }
  35.  
  36.       NEvent var3 = (NEvent)this.eventList.next;
  37.       ((DoubleLinkedList)var3).remove();
  38.       --this.eventsCount;
  39.       return var3;
  40.    }
  41.  
  42.    public synchronized int getQueueSize() {
  43.       return this.eventsCount;
  44.    }
  45.  
  46.    public synchronized void removeEvents(Object var1) {
  47.       if (!this.eventList.isEmptyList()) {
  48.          for(NEvent var2 = (NEvent)this.eventList.next; var2 != this.eventList; var2 = (NEvent)var2.next) {
  49.             if (var1 == var2.getTarget()) {
  50.                ((DoubleLinkedList)var2).remove();
  51.                --this.eventsCount;
  52.             }
  53.          }
  54.       }
  55.  
  56.    }
  57.  
  58.    public synchronized void coalesceEvent(NEvent var1) {
  59.       if (!this.eventList.isEmptyList()) {
  60.          for(NEvent var2 = (NEvent)this.eventList.next; var2 != this.eventList; var2 = (NEvent)var2.next) {
  61.             if (var1.coalesce(var2)) {
  62.                ((DoubleLinkedList)var2).remove();
  63.                --this.eventsCount;
  64.                return;
  65.             }
  66.          }
  67.       }
  68.  
  69.    }
  70. }
  71.