removed the core server reference from sessions, added a shutdown handler to initiate callbacks for when a session shutsdown, this is how the core server can run the same functionality going forward, small core-daemon documentation cleanup

This commit is contained in:
Blake J. Harnden 2017-05-04 13:49:14 -07:00
parent 3f82c980de
commit 7ad57bfb53
3 changed files with 115 additions and 68 deletions

View file

@ -210,13 +210,12 @@ class Session(object):
CORE session manager.
"""
def __init__(self, session_id, config=None, server=None, persistent=False, mkdir=True):
def __init__(self, session_id, config=None, persistent=False, mkdir=True):
"""
Create a Session instance.
:param int session_id: session id
:param dict config: session configuration
:param core.coreserver.CoreServer server: core server object
:param bool persistent: flag is session is considered persistent
:param bool mkdir: flag to determine if a directory should be made
"""
@ -256,9 +255,6 @@ class Session(object):
self.add_state_hook(state=EventTypes.RUNTIME_STATE.value, hook=self.runtime_state_hook)
# TODO: remove this server reference
self.server = server
if not persistent:
SessionManager.add(self)
@ -307,6 +303,7 @@ class Session(object):
self.link_handlers = []
self.file_handlers = []
self.config_handlers = []
self.shutdown_handlers = []
def shutdown(self):
"""
@ -333,13 +330,13 @@ class Session(object):
if not preserve:
shutil.rmtree(self.session_dir, ignore_errors=True)
# remove session from server if one was provided
if self.server:
self.server.remove_session(self)
# remove this session from the manager
SessionManager.remove(self)
# call session shutdown handlers
for handler in self.shutdown_handlers:
handler(self)
def broadcast_event(self, event_data):
"""
Handle event data that should be provided to event handler.