diff options
author | 2014-09-08 00:29:57 +0200 | |
---|---|---|
committer | 2014-09-14 11:02:23 +0200 | |
commit | 68d662e689cd42687341c550fb6ebb74e6968d21 (patch) | |
tree | 486cef41bd928b8db704894233b2cef94a6e346f /pyload/remote/thriftbackend/Transport.py | |
parent | save_join -> safe_join & save_path -> safe_filename (diff) | |
download | pyload-68d662e689cd42687341c550fb6ebb74e6968d21.tar.xz |
module -> pyload
Diffstat (limited to 'pyload/remote/thriftbackend/Transport.py')
-rw-r--r-- | pyload/remote/thriftbackend/Transport.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/pyload/remote/thriftbackend/Transport.py b/pyload/remote/thriftbackend/Transport.py new file mode 100644 index 000000000..b5b6c8104 --- /dev/null +++ b/pyload/remote/thriftbackend/Transport.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- + +from thrift.transport.TTransport import TBufferedTransport +from thrift.transport.TZlibTransport import TZlibTransport + +class Transport(TBufferedTransport): + DEFAULT_BUFFER = 4096 + + def __init__(self, trans, rbuf_size = DEFAULT_BUFFER): + TBufferedTransport.__init__(self, trans, rbuf_size) + self.handle = trans.handle + self.remoteaddr = trans.handle.getpeername() + +class TransportCompressed(TZlibTransport): + DEFAULT_BUFFER = 4096 + + def __init__(self, trans, rbuf_size = DEFAULT_BUFFER): + TZlibTransport.__init__(self, trans, rbuf_size) + self.handle = trans.handle + self.remoteaddr = trans.handle.getpeername() + +class TransportFactory: + def getTransport(self, trans): + buffered = Transport(trans) + return buffered + +class TransportFactoryCompressed: + _last_trans = None + _last_z = None + + def getTransport(self, trans, compresslevel=9): + if trans == self._last_trans: + return self._last_z + ztrans = TransportCompressed(Transport(trans), compresslevel) + self._last_trans = trans + self._last_z = ztrans + return ztrans |