store session in dictionary storage
This commit is contained in:
@ -29,7 +29,7 @@ class Settings(Cache):
|
||||
self._properties = {}
|
||||
# permissive properties
|
||||
self._permissives = {}
|
||||
super(Settings, self).__init__()
|
||||
super(Settings, self).__init__(storage)
|
||||
|
||||
# propertives
|
||||
def setproperties(self, path, properties):
|
||||
|
@ -28,10 +28,11 @@ class Setting(object):
|
||||
|
||||
|
||||
setting = Setting()
|
||||
_list_sessions = []
|
||||
|
||||
|
||||
def list_sessions():
|
||||
return []
|
||||
return _list_sessions
|
||||
|
||||
|
||||
def delete_session(session_id):
|
||||
@ -39,20 +40,28 @@ def delete_session(session_id):
|
||||
|
||||
|
||||
class Storage(object):
|
||||
__slots__ = tuple()
|
||||
__slots__ = ('session_id',)
|
||||
storage = 'dictionary'
|
||||
|
||||
def __init__(self, session_id, is_persistent):
|
||||
if is_persistent:
|
||||
def __init__(self, session_id, persistent):
|
||||
if session_id in _list_sessions:
|
||||
raise ValueError(_('session already used'))
|
||||
if persistent:
|
||||
raise ValueError(_('a dictionary cannot be persistent'))
|
||||
self.session_id = session_id
|
||||
_list_sessions.append(self.session_id)
|
||||
|
||||
def __del__(self):
|
||||
_list_sessions.remove(self.session_id)
|
||||
|
||||
|
||||
class Cache(object):
|
||||
__slots__ = ('_cache',)
|
||||
__slots__ = ('_cache', 'storage')
|
||||
key_is_path = False
|
||||
|
||||
def __init__(self):
|
||||
def __init__(self, storage):
|
||||
self._cache = {}
|
||||
self.storage = storage
|
||||
|
||||
def setcache(self, cache_type, path, val, time):
|
||||
self._cache[path] = (val, time)
|
||||
|
@ -29,7 +29,7 @@ class Values(Cache):
|
||||
"""
|
||||
self._values = {}
|
||||
# should init cache too
|
||||
super(Values, self).__init__()
|
||||
super(Values, self).__init__(storage)
|
||||
|
||||
# value
|
||||
def setvalue(self, path, value, owner):
|
||||
|
@ -50,11 +50,11 @@ def delete_session(session_id):
|
||||
|
||||
|
||||
class Storage(object):
|
||||
__slots__ = ('_conn', '_cursor', 'is_persistent', '_session_id')
|
||||
__slots__ = ('_conn', '_cursor', 'persistent', '_session_id')
|
||||
storage = 'sqlite3'
|
||||
|
||||
def __init__(self, session_id, is_persistent):
|
||||
self.is_persistent = is_persistent
|
||||
def __init__(self, session_id, persistent):
|
||||
self.persistent = persistent
|
||||
self._session_id = session_id
|
||||
self._conn = sqlite3.connect(_gen_filename(self._session_id))
|
||||
self._conn.text_factory = str
|
||||
@ -77,7 +77,7 @@ class Storage(object):
|
||||
def __del__(self):
|
||||
self._cursor.close()
|
||||
self._conn.close()
|
||||
if not self.is_persistent:
|
||||
if not self.persistent:
|
||||
delete_session(self._session_id)
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user