public class RecordOutputStream implements DataOutput {
- public RecordOutputStream(RecordInterface ri) {
- recordInterface = ri;
+ public RecordOutputStream(RfbProto rfbproto) {
+ rfb = rfbproto;
+ }
+
+ private boolean canWrite() {
+ return ((rfb != null) && (rfb.rec != null));
}
public void write(byte[] b) throws IOException {
- if (recordInterface.canWrite())
- recordInterface.write(b);
+ if (canWrite())
+ rfb.rec.write(b);
}
public void write(byte[] b, int off, int len) throws IOException {
- if (recordInterface.canWrite())
- recordInterface.write(b, off, len);
+ if (canWrite())
+ rfb.rec.write(b, off, len);
}
public void write(int b) throws IOException {
- if (recordInterface.canWrite())
- recordInterface.writeIntBE(b);
+ if (canWrite())
+ rfb.rec.writeIntBE(b);
}
public void writeBoolean(boolean v) { }
public void writeByte(int v) throws IOException {
- if (recordInterface.canWrite()) {
- recordInterface.writeByte(v);
+ if (canWrite()) {
+ rfb.rec.writeByte(v);
}
}
public void writeFloat(float v) { }
public void writeInt(int v) throws IOException {
- if (recordInterface.canWrite())
- recordInterface.writeIntBE(v);
+ if (canWrite())
+ rfb.rec.writeIntBE(v);
}
public void writeLong(long v) { }
public void writeShort(int v) throws IOException {
- if (recordInterface.canWrite())
- recordInterface.writeShortBE(v);
+ if (canWrite())
+ rfb.rec.writeShortBE(v);
}
public void writeUTF(String str) { }
-
- private RecordInterface recordInterface = null;
+
+ private RfbProto rfb = null;
}
//
class VncCanvas extends Canvas
- implements KeyListener, MouseListener, MouseMotionListener, RecordInterface,
- Repaintable {
+ implements KeyListener, MouseListener, MouseMotionListener, Repaintable {
VncViewer viewer;
RfbProto rfb;
// Input stream for decoders
RfbInputStream rfbis = new RfbInputStream(rfb);
// Create output stream for session recording
- RecordOutputStream ros = new RecordOutputStream(this);
+ RecordOutputStream ros = new RecordOutputStream(rfb);
rawDecoder = new RawDecoder(memGraphics, rfbis);
rreDecoder = new RREDecoder(memGraphics, rfbis);
}
}
}
-
- //
- // Override RecordInterface methods
- //
-
- public boolean canWrite() {
- // We can record if rec is not null
- return rfb.rec != null;
- }
-
- public void write(byte b[]) throws IOException {
- rfb.rec.write(b);
- }
-
- public void write(byte b[], int off, int len) throws IOException {
- rfb.rec.write(b, off, len);
- }
-
- public void writeByte(byte b) throws IOException {
- rfb.rec.writeByte(b);
- }
-
- public void writeByte(int i) throws IOException {
- rfb.rec.writeByte(i);
- }
-
- public void writeIntBE(int v) throws IOException {
- rfb.rec.writeIntBE(v);
- }
-
- public void writeShortBE(int v) throws IOException {
- rfb.rec.writeShortBE(v);
- }
}