14c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrompackage org.bouncycastle.util.io; 24c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 34c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport java.io.IOException; 44c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport java.io.OutputStream; 54c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 64c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrompublic class TeeOutputStream 74c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom extends OutputStream 84c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom{ 94c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom private OutputStream output1; 104c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom private OutputStream output2; 114c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 124c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public TeeOutputStream(OutputStream output1, OutputStream output2) 134c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 144c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom this.output1 = output1; 154c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom this.output2 = output2; 164c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 174c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 184c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public void write(byte[] buf) 194c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom throws IOException 204c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 214c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom this.output1.write(buf); 224c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom this.output2.write(buf); 234c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 244c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 254c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public void write(byte[] buf, int off, int len) 264c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom throws IOException 274c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 284c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom this.output1.write(buf, off, len); 294c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom this.output2.write(buf, off, len); 304c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 314c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 324c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public void write(int b) 334c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom throws IOException 344c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 354c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom this.output1.write(b); 364c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom this.output2.write(b); 374c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 384c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 394c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public void flush() 404c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom throws IOException 414c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 424c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom this.output1.flush(); 434c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom this.output2.flush(); 444c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 454c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom 464c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public void close() 474c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom throws IOException 484c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom { 494c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom this.output1.close(); 504c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom this.output2.close(); 514c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom } 524c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom}