Interface SessionStore
-
- All Known Subinterfaces:
SignalProtocolStore
- All Known Implementing Classes:
InMemorySessionStore,InMemorySignalProtocolStore
public interface SessionStoreThe interface to the durable store of session state information for remote clients.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description booleancontainsSession(SignalProtocolAddress address)Determine whether there is a committedSessionRecordfor a recipientId + deviceId tuple.voiddeleteAllSessions(java.lang.String name)Remove theSessionRecords corresponding to all devices of a recipientId.voiddeleteSession(SignalProtocolAddress address)Remove aSessionRecordfor a recipientId + deviceId tuple.java.util.List<java.lang.Integer>getSubDeviceSessions(java.lang.String name)Returns all known devices with active sessions for a recipientjava.util.List<SessionRecord>loadExistingSessions(java.util.List<SignalProtocolAddress> addresses)Returns theSessionRecords corresponding to the given addresses.SessionRecordloadSession(SignalProtocolAddress address)Returns a copy of theSessionRecordcorresponding to the recipientId + deviceId tuple, or a new SessionRecord if one does not currently exist.voidstoreSession(SignalProtocolAddress address, SessionRecord record)Commit to storage theSessionRecordfor a given recipientId + deviceId tuple.
-
-
-
Method Detail
-
loadSession
SessionRecord loadSession(SignalProtocolAddress address)
Returns a copy of theSessionRecordcorresponding 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 theSessionRecords 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 theSessionRecordfor 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 committedSessionRecordfor a recipientId + deviceId tuple.- Parameters:
address- the address of the remote client.- Returns:
- true if a
SessionRecordexists, false otherwise.
-
deleteSession
void deleteSession(SignalProtocolAddress address)
Remove aSessionRecordfor a recipientId + deviceId tuple.- Parameters:
address- the address of the remote client.
-
deleteAllSessions
void deleteAllSessions(java.lang.String name)
Remove theSessionRecords corresponding to all devices of a recipientId.- Parameters:
name- the name of the remote client.
-
-