summaryrefslogtreecommitdiff
path: root/gnu/java/awt/image/ImageDecoder.java
blob: 82d035777336b197caae85075639647487dcfa59 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package gnu.java.awt.image;

import java.awt.*;
import java.awt.image.*;
import java.util.*;
import java.io.*;

public abstract class ImageDecoder implements ImageProducer 
{
  Vector consumers;

  public ImageDecoder ()
  {
    consumers = new Vector ();
  }

  public void addConsumer (ImageConsumer ic) 
  {
    consumers.addElement (ic);
  }

  public boolean isConsumer (ImageConsumer ic)
  {
    return consumers.contains (ic);
  }
  
  public void removeConsumer (ImageConsumer ic)
  {
    consumers.removeElement (ic);
  }

  public void startProduction (ImageConsumer ic)
  {
    addConsumer (ic);
    Vector list = (Vector) consumers.clone ();
    try 
      {
	produce (list);
      } 
    catch (IOException e)
      {
	for (int i = 0; i < list.size (); i++)
	  {
	    ImageConsumer ic2 = (ImageConsumer) list.elementAt (i);
	    ic2.imageComplete (ImageConsumer.IMAGEERROR);
	  }
      }
  }

  public void requestTopDownLeftRightResend (ImageConsumer ic) 
  { 
  }

  public abstract void produce (Vector v) throws IOException;
}