DiscoveryDao

Functions

Link copied to clipboard
abstract suspend fun countSessionsForDevice(sessionId: Long, deviceAddress: String): Int
Link copied to clipboard
abstract suspend fun deleteSession(sessionId: Long)
Link copied to clipboard
Link copied to clipboard

Snapshot used by DatabaseMerger to append a transport's discovery sessions to the unified DB.

Link copied to clipboard
abstract suspend fun getDiscoveredNodes(presetResultId: Long): List<DiscoveredNodeEntity>
Link copied to clipboard
abstract fun getDiscoveredNodesFlow(presetResultId: Long): Flow<List<DiscoveredNodeEntity>>
Link copied to clipboard
abstract suspend fun getInterruptedSession(deviceAddress: String): DiscoverySessionEntity?

The most recent recoverable session for deviceAddress. This includes active/interrupted scans and terminal scans whose home-radio restoration is still pending, so callers must inspect completionStatus rather than assuming an unfinished scan.

Link copied to clipboard
abstract suspend fun getMaxDistance(sessionId: Long): Double?
Link copied to clipboard
abstract suspend fun getPresetResults(sessionId: Long): List<DiscoveryPresetResultEntity>
Link copied to clipboard
Link copied to clipboard
abstract suspend fun getSession(sessionId: Long): DiscoverySessionEntity?
Link copied to clipboard
abstract fun getSessionFlow(sessionId: Long): Flow<DiscoverySessionEntity?>
Link copied to clipboard
abstract suspend fun getSessionWithResults(sessionId: Long): DiscoverySessionEntity?
Link copied to clipboard
abstract suspend fun getUniqueNodeCount(sessionId: Long): Int
Link copied to clipboard
abstract suspend fun getUniqueNodeNums(sessionId: Long): List<Long>
Link copied to clipboard
abstract suspend fun insertDiscoveredNode(node: DiscoveredNodeEntity): Long
Link copied to clipboard
abstract suspend fun insertDiscoveredNodes(nodes: List<DiscoveredNodeEntity>)
Link copied to clipboard
open suspend fun insertDwellIfSessionExists(result: DiscoveryPresetResultEntity, nodes: List<DiscoveredNodeEntity>, deviceAddress: String): Long?

Writes one dwell's preset result and its discovered nodes, but only if the parent session row exists in this database and belongs to deviceAddress, returning null when it does not.

Link copied to clipboard
abstract suspend fun insertPresetResult(result: DiscoveryPresetResultEntity): Long
Link copied to clipboard
abstract suspend fun insertSession(session: DiscoverySessionEntity): Long
Link copied to clipboard
abstract suspend fun markInterruptedSessions()
Link copied to clipboard
abstract suspend fun updateDiscoveredNode(node: DiscoveredNodeEntity)
Link copied to clipboard
abstract suspend fun updatePresetResult(result: DiscoveryPresetResultEntity)
Link copied to clipboard
abstract suspend fun updateRecoverableSessionCompletionStatus(sessionId: Long, status: String): Int
Link copied to clipboard
abstract suspend fun updateSession(session: DiscoverySessionEntity)
Link copied to clipboard
abstract suspend fun updateSessionAggregates(sessionId: Long, totalUniqueNodes: Int, totalDwellSeconds: Long, totalMessages: Int, totalSensorPackets: Int, furthestNodeDistance: Double, avgChannelUtilization: Double)
Link copied to clipboard
abstract suspend fun updateSessionCompletionStatus(sessionId: Long, status: String): Int