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:
|
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)
|
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
try:
|
try:
|
||||||
self.sock.bind(host_port_pair)
|
self.sock.bind(host_port_pair)
|
||||||
|
@ -21,13 +21,18 @@ class Server:
|
||||||
self.sock.listen(2)
|
self.sock.listen(2)
|
||||||
self.handlers = []
|
self.handlers = []
|
||||||
self.debug = debug
|
self.debug = debug
|
||||||
|
self.compression_level = compression_level
|
||||||
|
|
||||||
|
|
||||||
def run(self, handler, handler_args={}):
|
def run(self, handler, handler_args={}):
|
||||||
self.handler = handler
|
self.handler = handler
|
||||||
while 1:
|
while 1:
|
||||||
sock, info = self.sock.accept()
|
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)
|
handler = self.handler(sock, info, **handler_args)
|
||||||
self.handlers.append(handler)
|
self.handlers.append(handler)
|
||||||
_thread.start_new_thread(self.controller, (handler, ))
|
_thread.start_new_thread(self.controller, (handler, ))
|
||||||
|
|
|
@ -213,6 +213,7 @@ config.add(Config.Option("server_address", ("127.0.0.1", 3077)))
|
||||||
config.add(Config.Option("debug", True, validator=lambda x: True if True or False else False))
|
config.add(Config.Option("debug", True, validator=lambda x: True if True or False else False))
|
||||||
config.add(Config.Option("binary_path", "Binaries", validator=folder_validator))
|
config.add(Config.Option("binary_path", "Binaries", validator=folder_validator))
|
||||||
config.add(Config.Option("source_path", "Source", validator=folder_validator))
|
config.add(Config.Option("source_path", "Source", validator=folder_validator))
|
||||||
|
config.add(Config.Option("compression_level", 0, validator=lambda x: x >= 0 and x <= 9))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
config = config.read_from_file(CONFIG_PATH)
|
config = config.read_from_file(CONFIG_PATH)
|
||||||
|
@ -220,7 +221,7 @@ except FileNotFoundError:
|
||||||
config.write_to_file(CONFIG_PATH)
|
config.write_to_file(CONFIG_PATH)
|
||||||
config = config.read_from_file(CONFIG_PATH)
|
config = config.read_from_file(CONFIG_PATH)
|
||||||
|
|
||||||
server = Server(config.server_address, debug=config.debug)
|
server = Server(config.server_address, debug=config.debug, compression_level=config.compression_level)
|
||||||
|
|
||||||
broadcast = Broadcast()
|
broadcast = Broadcast()
|
||||||
# Populating broadcast channels with all channels defined in Handler.Channels
|
# Populating broadcast channels with all channels defined in Handler.Channels
|
||||||
|
|
|
@ -157,10 +157,13 @@ class Fl0w:
|
||||||
def connect(self, connect_details):
|
def connect(self, connect_details):
|
||||||
connect_details_raw = connect_details
|
connect_details_raw = connect_details
|
||||||
connect_details = connect_details.split(":")
|
connect_details = connect_details.split(":")
|
||||||
|
compression_level = int(sublime.load_settings("fl0w.sublime-settings").get("compression_level"))
|
||||||
|
|
||||||
if len(connect_details) == 2:
|
if len(connect_details) == 2:
|
||||||
try:
|
try:
|
||||||
# Establish connection to the server
|
# Establish connection to the server
|
||||||
self.sock = ESock(socket.create_connection((connect_details[0], int(connect_details[1]))), disconnect_callback=self.invoke_disconnect, debug=False)
|
self.sock = ESock(socket.create_connection((connect_details[0], int(connect_details[1]))),
|
||||||
|
disconnect_callback=self.invoke_disconnect, debug=False, compression_level=compression_level)
|
||||||
sublime.status_message("Connected to %s:%s." % (connect_details[0], connect_details[1]))
|
sublime.status_message("Connected to %s:%s." % (connect_details[0], connect_details[1]))
|
||||||
# Initialize all routes
|
# Initialize all routes
|
||||||
error_report = Fl0w.ErrorReport()
|
error_report = Fl0w.ErrorReport()
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
{
|
{
|
||||||
"server_address": "" // Last server address
|
"server_address": "", // Last server address
|
||||||
|
"compression_level": 2
|
||||||
}
|
}
|
|
@ -125,6 +125,7 @@ config = Config.Config()
|
||||||
config.add(Config.Option("server_address", ("127.0.0.1", 3077)))
|
config.add(Config.Option("server_address", ("127.0.0.1", 3077)))
|
||||||
config.add(Config.Option("debug", True, validator=lambda x: True if True or False else False))
|
config.add(Config.Option("debug", True, validator=lambda x: True if True or False else False))
|
||||||
config.add(Config.Option("output_unbuffer", "stdbuf"))
|
config.add(Config.Option("output_unbuffer", "stdbuf"))
|
||||||
|
config.add(Config.Option("compression_level", 0, validator=lambda x: x >= 0 and x <= 9))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
config = config.read_from_file(CONFIG_PATH)
|
config = config.read_from_file(CONFIG_PATH)
|
||||||
|
|
Reference in a new issue