NodeInfoDao

interface NodeInfoDao(source)

Types

Link copied to clipboard
object Companion

Functions

Link copied to clipboard
open suspend fun backfillDenormalizedNames()

Backfills longName and shortName columns from the user protobuf for nodes where these columns are NULL. This ensures search functionality works for all nodes. Skips placeholder/default users (hwModel == UNSET).

Link copied to clipboard
abstract suspend fun clearMyNodeInfo()
Link copied to clipboard
open suspend fun clearNodeInfo(preserveFavorites: Boolean)
Link copied to clipboard
abstract suspend fun deleteAllNodes()
Link copied to clipboard
abstract suspend fun deleteMetadata(num: Int)
Link copied to clipboard
abstract suspend fun deleteNode(num: Int)
Link copied to clipboard
abstract suspend fun deleteNodes(nodeNums: List<Int>)
Link copied to clipboard
abstract suspend fun deleteNonFavoriteNodes()
Link copied to clipboard
abstract suspend fun doUpsert(node: NodeEntity)
Link copied to clipboard
abstract suspend fun findNodeByPublicKey(publicKey: ByteString?): NodeEntity?
Link copied to clipboard
abstract suspend fun findNodesByPublicKeys(publicKeys: List<ByteString>): List<NodeEntity>
Link copied to clipboard
abstract suspend fun getAllMetadataSnapshot(): List<MetadataEntity>

Snapshot used by DatabaseMerger to carry per-node DeviceMetadata across transports (newest timestamp wins).

Link copied to clipboard
abstract suspend fun getAllNodesSnapshot(): List<NodeEntity>
Link copied to clipboard
abstract fun getMyNodeInfo(): Flow<MyNodeEntity?>
Link copied to clipboard
abstract suspend fun getNodeByNum(num: Int): NodeWithRelations?
Link copied to clipboard
abstract suspend fun getNodeEntitiesByNums(nodeNums: List<Int>): List<NodeEntity>
Link copied to clipboard
abstract fun getNodes(sort: String, filter: String, includeUnknown: Boolean, hopsAwayMax: Int, lastHeardMin: Int): Flow<List<NodeWithRelations>>
Link copied to clipboard
abstract suspend fun getNodesOlderThan(lastHeard: Int): List<NodeEntity>
Link copied to clipboard
abstract suspend fun getUnknownNodes(): List<NodeEntity>
Link copied to clipboard
open suspend fun installConfig(mi: MyNodeEntity, nodes: List<NodeEntity>)
Link copied to clipboard
abstract fun nodeDBbyNum(): Flow<Map<Int, NodeWithRelations>>
Link copied to clipboard
abstract suspend fun putAll(nodes: List<NodeEntity>)
Link copied to clipboard
abstract suspend fun setMyNodeInfo(myInfo: MyNodeEntity)
Link copied to clipboard
abstract suspend fun setNodeNotes(num: Int, notes: String)
Link copied to clipboard
abstract suspend fun setPowerChannelLabels(num: Int, labels: List<String>)
Link copied to clipboard
open suspend fun updatePowerChannelLabel(num: Int, channelIndex: Int, label: String)

Sets a single power-channel label (0-based channelIndex) atomically: the read-modify-write runs inside a transaction that reads the current labels from the DB, so concurrent edits to different channels can't clobber each other via a stale read. Earlier channels keep their slot (blank padding); trailing blanks are dropped.

Link copied to clipboard
abstract suspend fun upsert(meta: MetadataEntity)
open suspend fun upsert(node: NodeEntity)