Encoders/decoders should track the connection object
The connection object is a much more appropriate object for the
decoders and encoders to keep track of. Besides the streams, it also
contains state like connection parameters.
diff --git a/common/rfb/Encoder.cxx b/common/rfb/Encoder.cxx
index 6b2321c..89a5f14 100644
--- a/common/rfb/Encoder.cxx
+++ b/common/rfb/Encoder.cxx
@@ -25,11 +25,11 @@
#include <rfb/HextileEncoder.h>
#include <rfb/ZRLEEncoder.h>
#include <rfb/TightEncoder.h>
-#include <rfb/SMsgWriter.h>
+#include <rfb/SConnection.h>
using namespace rfb;
-Encoder::Encoder(SMsgWriter* writer_) : writer(writer_)
+Encoder::Encoder(SConnection *conn_) : conn(conn_)
{
}
@@ -51,19 +51,19 @@
}
}
-Encoder* Encoder::createEncoder(int encoding, SMsgWriter* writer)
+Encoder* Encoder::createEncoder(int encoding, SConnection* conn)
{
switch (encoding) {
case encodingRaw:
- return new RawEncoder(writer);
+ return new RawEncoder(conn);
case encodingRRE:
- return new RREEncoder(writer);
+ return new RREEncoder(conn);
case encodingHextile:
- return new HextileEncoder(writer);
+ return new HextileEncoder(conn);
case encodingZRLE:
- return new ZRLEEncoder(writer);
+ return new ZRLEEncoder(conn);
case encodingTight:
- return new TightEncoder(writer);
+ return new TightEncoder(conn);
default:
return NULL;
}