For convenience, creates RPC snapshot methods for feeds.

This commit is contained in:
Joel Dudley
2017-08-15 16:18:15 +01:00
committed by GitHub
parent eb925904ce
commit ccdab6af4d
8 changed files with 53 additions and 14 deletions

View File

@ -1,5 +1,6 @@
package net.corda.node.internal
import net.corda.client.rpc.notUsed
import net.corda.core.contracts.ContractState
import net.corda.core.contracts.StateAndRef
import net.corda.core.contracts.UpgradedContract
@ -39,6 +40,12 @@ class CordaRPCOpsImpl(
private val smm: StateMachineManager,
private val database: CordaPersistence
) : CordaRPCOps {
override fun networkMapSnapshot(): List<NodeInfo> {
val (snapshot, updates) = networkMapFeed()
updates.notUsed()
return snapshot
}
override fun networkMapFeed(): DataFeed<List<NodeInfo>, NetworkMapCache.MapChange> {
return database.transaction {
services.networkMapCache.track()
@ -64,12 +71,24 @@ class CordaRPCOpsImpl(
}
}
override fun verifiedTransactionsSnapshot(): List<SignedTransaction> {
val (snapshot, updates) = verifiedTransactionsFeed()
updates.notUsed()
return snapshot
}
override fun verifiedTransactionsFeed(): DataFeed<List<SignedTransaction>, SignedTransaction> {
return database.transaction {
services.validatedTransactions.track()
}
}
override fun stateMachinesSnapshot(): List<StateMachineInfo> {
val (snapshot, updates) = stateMachinesFeed()
updates.notUsed()
return snapshot
}
override fun stateMachinesFeed(): DataFeed<List<StateMachineInfo>, StateMachineUpdate> {
return database.transaction {
val (allStateMachines, changes) = smm.track()
@ -80,6 +99,12 @@ class CordaRPCOpsImpl(
}
}
override fun stateMachineRecordedTransactionMappingSnapshot(): List<StateMachineTransactionMapping> {
val (snapshot, updates) = stateMachineRecordedTransactionMappingFeed()
updates.notUsed()
return snapshot
}
override fun stateMachineRecordedTransactionMappingFeed(): DataFeed<List<StateMachineTransactionMapping>, StateMachineTransactionMapping> {
return database.transaction {
services.stateMachineRecordedTransactionMapping.track()