corda / net.corda.core.flows / FlowStateMachine

# FlowStateMachine

`interface FlowStateMachine<R>`

This is an internal interface that is implemented by code in the node module. You should look at FlowLogic.

### Properties

id | `abstract val id: StateMachineRunId`
logger | `abstract val logger: Logger`
resultFuture | `abstract val resultFuture: ListenableFuture<R>`
serviceHub | `abstract val serviceHub: ServiceHub`

### Functions

receive | `abstract fun <T : Any> receive(receiveType: Class<T>, otherParty: Party, sessionFlow: FlowLogic<*>): UntrustworthyData<T>`
send | `abstract fun send(otherParty: Party, payload: Any, sessionFlow: FlowLogic<*>): Unit`
sendAndReceive | `abstract fun <T : Any> sendAndReceive(receiveType: Class<T>, otherParty: Party, payload: Any, sessionFlow: FlowLogic<*>): UntrustworthyData<T>`
waitForLedgerCommit | `abstract fun waitForLedgerCommit(hash: SecureHash, sessionFlow: FlowLogic<*>): SignedTransaction`

### Inheritors

FlowStateMachineImpl | `class FlowStateMachineImpl<R> : Fiber<Unit>, FlowStateMachine<R>`