Add configuration entries for setting the compression level used by ESock.
On the ST client and on the server, compression_level defaults to 2, on the Wallaby client to 0 because of limited resources and longer battery-life.
This commit is contained in:
parent
a6de0790dd
commit
306d629d0b
5 changed files with 33 additions and 22 deletions
|
@ -11,7 +11,7 @@ import _thread
|
|||
|
||||
|
||||
class Server:
|
||||
def __init__(self, host_port_pair, debug=False):
|
||||
def __init__(self, host_port_pair, debug=False, compression_level=None):
|
||||
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
try:
|
||||
self.sock.bind(host_port_pair)
|
||||
|
@ -21,13 +21,18 @@ class Server:
|
|||
self.sock.listen(2)
|
||||
self.handlers = []
|
||||
self.debug = debug
|
||||
self.compression_level = compression_level
|
||||
|
||||
|
||||
def run(self, handler, handler_args={}):
|
||||
self.handler = handler
|
||||
while 1:
|
||||
sock, info = self.sock.accept()
|
||||
sock = ESock(sock) if not self.debug else ESock(sock, debug=self.debug)
|
||||
if self.compression_level:
|
||||
sock = ESock(sock, debug=self.debug, compression_level=self.compression_level)
|
||||
else:
|
||||
sock = ESock(sock, debug=self.debug)
|
||||
|
||||
handler = self.handler(sock, info, **handler_args)
|
||||
self.handlers.append(handler)
|
||||
_thread.start_new_thread(self.controller, (handler, ))
|
||||
|
@ -60,11 +65,11 @@ class Server:
|
|||
handler.finish()
|
||||
except Exception:
|
||||
self.print_trace(sock)
|
||||
finally:
|
||||
finally:
|
||||
if handler in self.handlers:
|
||||
del self.handlers[self.handlers.index(handler)]
|
||||
handler.sock.close()
|
||||
|
||||
|
||||
|
||||
class Handler:
|
||||
def __init__(self, sock, info, **kwargs):
|
||||
|
@ -79,4 +84,4 @@ class Server:
|
|||
pass
|
||||
|
||||
def finish(self):
|
||||
pass
|
||||
pass
|
||||
|
|
Reference in a new issue