Interface SessionStore

    • Method Detail

      • loadSession

        SessionRecord loadSession​(SignalProtocolAddress address)
        Returns a copy of the SessionRecord corresponding to the recipientId + deviceId tuple, or a new SessionRecord if one does not currently exist.

        It is important that implementations return a copy of the current durable information. The returned SessionRecord may be modified, but those changes should not have an effect on the durable session state (what is returned by subsequent calls to this method) without the store method being called here first.

        Parameters:
        address - The name and device ID of the remote client.
        Returns:
        a copy of the SessionRecord corresponding to the recipientId + deviceId tuple, or a new SessionRecord if one does not currently exist.
      • loadExistingSessions

        java.util.List<SessionRecord> loadExistingSessions​(java.util.List<SignalProtocolAddress> addresses)
                                                    throws NoSessionException
        Returns the SessionRecords corresponding to the given addresses.
        Parameters:
        addresses - The name and device ID of each remote client.
        Returns:
        the SessionRecords corresponding to each recipientId + deviceId tuple.
        Throws:
        NoSessionException - if any address does not have an active session.
      • getSubDeviceSessions

        java.util.List<java.lang.Integer> getSubDeviceSessions​(java.lang.String name)
        Returns all known devices with active sessions for a recipient
        Parameters:
        name - the name of the client.
        Returns:
        all known sub-devices with active sessions.
      • storeSession

        void storeSession​(SignalProtocolAddress address,
                          SessionRecord record)
        Commit to storage the SessionRecord for a given recipientId + deviceId tuple.
        Parameters:
        address - the address of the remote client.
        record - the current SessionRecord for the remote client.
      • containsSession

        boolean containsSession​(SignalProtocolAddress address)
        Determine whether there is a committed SessionRecord for a recipientId + deviceId tuple.
        Parameters:
        address - the address of the remote client.
        Returns:
        true if a SessionRecord exists, false otherwise.
      • deleteSession

        void deleteSession​(SignalProtocolAddress address)
        Remove a SessionRecord for a recipientId + deviceId tuple.
        Parameters:
        address - the address of the remote client.
      • deleteAllSessions

        void deleteAllSessions​(java.lang.String name)
        Remove the SessionRecords corresponding to all devices of a recipientId.
        Parameters:
        name - the name of the remote client.