home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / java / awt / MediaTracker.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  3.0 KB  |  301 lines

  1. package java.awt;
  2.  
  3. import java.io.Serializable;
  4.  
  5. public class MediaTracker implements Serializable {
  6.    Component target;
  7.    MediaEntry head;
  8.    private static final long serialVersionUID = -483174189758638095L;
  9.    public static final int LOADING = 1;
  10.    public static final int ABORTED = 2;
  11.    public static final int ERRORED = 4;
  12.    public static final int COMPLETE = 8;
  13.    static final int DONE = 14;
  14.  
  15.    public MediaTracker(Component var1) {
  16.       this.target = var1;
  17.    }
  18.  
  19.    public void addImage(Image var1, int var2) {
  20.       this.addImage(var1, var2, -1, -1);
  21.    }
  22.  
  23.    public synchronized void addImage(Image var1, int var2, int var3, int var4) {
  24.       this.head = MediaEntry.insert(this.head, new ImageMediaEntry(this, var1, var2, var3, var4));
  25.    }
  26.  
  27.    public boolean checkAll() {
  28.       return this.checkAll(false, true);
  29.    }
  30.  
  31.    public boolean checkAll(boolean var1) {
  32.       return this.checkAll(var1, true);
  33.    }
  34.  
  35.    private synchronized boolean checkAll(boolean var1, boolean var2) {
  36.       MediaEntry var3 = this.head;
  37.  
  38.       boolean var4;
  39.       for(var4 = true; var3 != null; var3 = var3.next) {
  40.          if ((var3.getStatus(var1, var2) & 14) == 0) {
  41.             var4 = false;
  42.          }
  43.       }
  44.  
  45.       return var4;
  46.    }
  47.  
  48.    public synchronized boolean isErrorAny() {
  49.       for(MediaEntry var1 = this.head; var1 != null; var1 = var1.next) {
  50.          if ((var1.getStatus(false, true) & 4) != 0) {
  51.             return true;
  52.          }
  53.       }
  54.  
  55.       return false;
  56.    }
  57.  
  58.    public synchronized Object[] getErrorsAny() {
  59.       MediaEntry var1 = this.head;
  60.  
  61.       int var2;
  62.       for(var2 = 0; var1 != null; var1 = var1.next) {
  63.          if ((var1.getStatus(false, true) & 4) != 0) {
  64.             ++var2;
  65.          }
  66.       }
  67.  
  68.       if (var2 == 0) {
  69.          return null;
  70.       } else {
  71.          Object[] var3 = new Object[var2];
  72.          var1 = this.head;
  73.  
  74.          for(int var5 = 0; var1 != null; var1 = var1.next) {
  75.             if ((var1.getStatus(false, false) & 4) != 0) {
  76.                var3[var5++] = var1.getMedia();
  77.             }
  78.          }
  79.  
  80.          return var3;
  81.       }
  82.    }
  83.  
  84.    public void waitForAll() throws InterruptedException {
  85.       this.waitForAll(0L);
  86.    }
  87.  
  88.    public synchronized boolean waitForAll(long var1) throws InterruptedException {
  89.       long var3 = System.currentTimeMillis() + var1;
  90.       boolean var5 = true;
  91.  
  92.       while(true) {
  93.          int var6 = this.statusAll(var5, var5);
  94.          if ((var6 & 1) == 0) {
  95.             return var6 == 8;
  96.          }
  97.  
  98.          var5 = false;
  99.          long var7;
  100.          if (var1 == 0L) {
  101.             var7 = 0L;
  102.          } else {
  103.             var7 = var3 - System.currentTimeMillis();
  104.             if (var7 <= 0L) {
  105.                return false;
  106.             }
  107.          }
  108.  
  109.          this.wait(var7);
  110.       }
  111.    }
  112.  
  113.    public int statusAll(boolean var1) {
  114.       return this.statusAll(var1, true);
  115.    }
  116.  
  117.    private synchronized int statusAll(boolean var1, boolean var2) {
  118.       MediaEntry var3 = this.head;
  119.  
  120.       int var4;
  121.       for(var4 = 0; var3 != null; var3 = var3.next) {
  122.          var4 |= var3.getStatus(var1, var2);
  123.       }
  124.  
  125.       return var4;
  126.    }
  127.  
  128.    public boolean checkID(int var1) {
  129.       return this.checkID(var1, false, true);
  130.    }
  131.  
  132.    public boolean checkID(int var1, boolean var2) {
  133.       return this.checkID(var1, var2, true);
  134.    }
  135.  
  136.    private synchronized boolean checkID(int var1, boolean var2, boolean var3) {
  137.       MediaEntry var4 = this.head;
  138.  
  139.       boolean var5;
  140.       for(var5 = true; var4 != null; var4 = var4.next) {
  141.          if (var4.getID() == var1 && (var4.getStatus(var2, var3) & 14) == 0) {
  142.             var5 = false;
  143.          }
  144.       }
  145.  
  146.       return var5;
  147.    }
  148.  
  149.    public synchronized boolean isErrorID(int var1) {
  150.       for(MediaEntry var2 = this.head; var2 != null; var2 = var2.next) {
  151.          if (var2.getID() == var1 && (var2.getStatus(false, true) & 4) != 0) {
  152.             return true;
  153.          }
  154.       }
  155.  
  156.       return false;
  157.    }
  158.  
  159.    public synchronized Object[] getErrorsID(int var1) {
  160.       MediaEntry var2 = this.head;
  161.  
  162.       int var3;
  163.       for(var3 = 0; var2 != null; var2 = var2.next) {
  164.          if (var2.getID() == var1 && (var2.getStatus(false, true) & 4) != 0) {
  165.             ++var3;
  166.          }
  167.       }
  168.  
  169.       if (var3 == 0) {
  170.          return null;
  171.       } else {
  172.          Object[] var4 = new Object[var3];
  173.          var2 = this.head;
  174.  
  175.          for(int var6 = 0; var2 != null; var2 = var2.next) {
  176.             if (var2.getID() == var1 && (var2.getStatus(false, false) & 4) != 0) {
  177.                var4[var6++] = var2.getMedia();
  178.             }
  179.          }
  180.  
  181.          return var4;
  182.       }
  183.    }
  184.  
  185.    public void waitForID(int var1) throws InterruptedException {
  186.       this.waitForID(var1, 0L);
  187.    }
  188.  
  189.    public synchronized boolean waitForID(int var1, long var2) throws InterruptedException {
  190.       long var4 = System.currentTimeMillis() + var2;
  191.       boolean var6 = true;
  192.  
  193.       while(true) {
  194.          int var7 = this.statusID(var1, var6, var6);
  195.          if ((var7 & 1) == 0) {
  196.             return var7 == 8;
  197.          }
  198.  
  199.          var6 = false;
  200.          long var8;
  201.          if (var2 == 0L) {
  202.             var8 = 0L;
  203.          } else {
  204.             var8 = var4 - System.currentTimeMillis();
  205.             if (var8 <= 0L) {
  206.                return false;
  207.             }
  208.          }
  209.  
  210.          this.wait(var8);
  211.       }
  212.    }
  213.  
  214.    public int statusID(int var1, boolean var2) {
  215.       return this.statusID(var1, var2, true);
  216.    }
  217.  
  218.    private synchronized int statusID(int var1, boolean var2, boolean var3) {
  219.       MediaEntry var4 = this.head;
  220.  
  221.       int var5;
  222.       for(var5 = 0; var4 != null; var4 = var4.next) {
  223.          if (var4.getID() == var1) {
  224.             var5 |= var4.getStatus(var2, var3);
  225.          }
  226.       }
  227.  
  228.       return var5;
  229.    }
  230.  
  231.    public synchronized void removeImage(Image var1) {
  232.       MediaEntry var2 = this.head;
  233.  
  234.       MediaEntry var4;
  235.       for(MediaEntry var3 = null; var2 != null; var2 = var4) {
  236.          var4 = var2.next;
  237.          if (var2.getMedia() == var1) {
  238.             if (var3 == null) {
  239.                this.head = var4;
  240.             } else {
  241.                var3.next = var4;
  242.             }
  243.  
  244.             var2.cancel();
  245.          } else {
  246.             var3 = var2;
  247.          }
  248.       }
  249.  
  250.       this.notifyAll();
  251.    }
  252.  
  253.    public synchronized void removeImage(Image var1, int var2) {
  254.       MediaEntry var3 = this.head;
  255.  
  256.       MediaEntry var5;
  257.       for(MediaEntry var4 = null; var3 != null; var3 = var5) {
  258.          var5 = var3.next;
  259.          if (var3.getID() == var2 && var3.getMedia() == var1) {
  260.             if (var4 == null) {
  261.                this.head = var5;
  262.             } else {
  263.                var4.next = var5;
  264.             }
  265.  
  266.             var3.cancel();
  267.          } else {
  268.             var4 = var3;
  269.          }
  270.       }
  271.  
  272.       this.notifyAll();
  273.    }
  274.  
  275.    public synchronized void removeImage(Image var1, int var2, int var3, int var4) {
  276.       MediaEntry var5 = this.head;
  277.  
  278.       MediaEntry var7;
  279.       for(MediaEntry var6 = null; var5 != null; var5 = var7) {
  280.          var7 = var5.next;
  281.          if (var5.getID() == var2 && var5 instanceof ImageMediaEntry && ((ImageMediaEntry)var5).matches(var1, var3, var4)) {
  282.             if (var6 == null) {
  283.                this.head = var7;
  284.             } else {
  285.                var6.next = var7;
  286.             }
  287.  
  288.             var5.cancel();
  289.          } else {
  290.             var6 = var5;
  291.          }
  292.       }
  293.  
  294.       this.notifyAll();
  295.    }
  296.  
  297.    synchronized void setDone() {
  298.       this.notifyAll();
  299.    }
  300. }
  301.