File: inmemorysessionstore.py

package info (click to toggle)
python-axolotl 0.2.3-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 592 kB
  • sloc: python: 2,962; makefile: 3
file content (37 lines) | stat: -rw-r--r-- 1,183 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# -*- coding: utf-8 -*-

from ..state.sessionstore import SessionStore
from ..state.sessionrecord import SessionRecord


class InMemorySessionStore(SessionStore):
    def __init__(self):
        self.sessions = {}

    def loadSession(self, recepientId, deviceId):
        if self.containsSession(recepientId, deviceId):
            return SessionRecord(serialized=self.sessions[(recepientId, deviceId)])
        else:
            return SessionRecord()

    def getSubDeviceSessions(self, recepientId):
        deviceIds = []
        for k in self.sessions.keys():
            if k[0] == recepientId:
                deviceIds.append(k[1])

        return deviceIds

    def storeSession(self, recepientId, deviceId, sessionRecord):
        self.sessions[(recepientId, deviceId)] = sessionRecord.serialize()

    def containsSession(self, recepientId, deviceId):
        return (recepientId, deviceId) in self.sessions

    def deleteSession(self, recepientId, deviceId):
        del self.sessions[(recepientId, deviceId)]

    def deleteAllSessions(self, recepientId):
        for k in self.sessions.keys():
            if k[0] == recepientId:
                del self.sessions[k]