AbstractCashFlow - corda

corda / net.corda.finance.flows / AbstractCashFlow

# AbstractCashFlow

`abstract class AbstractCashFlow<out T> : FlowLogic<T>`

Initiates a flow that produces an Issue/Move or Exit Cash transaction.

### Types

#### AbstractRequest | `abstract class AbstractRequest`
#### FINALISING_TX | `object FINALISING_TX : Step`
#### GENERATING_ID | `object GENERATING_ID : Step`
#### GENERATING_TX | `object GENERATING_TX : Step`
#### Result | Combined signed transaction and identity lookup map, which is the resulting data from regular cash flows. Specialised flows for unit tests differ from this. `data class Result`
#### SIGNING_TX | `object SIGNING_TX : Step`

### Constructors

#### <init> | Initiates a flow that produces an Issue/Move or Exit Cash transaction. `AbstractCashFlow(progressTracker: ProgressTracker)`

### Properties

#### progressTracker | Override this to provide a ProgressTracker. If one is provided and stepped, the framework will do something helpful with the progress reports e.g record to the audit service. If this flow is invoked as a subflow of another, then the tracker will be made a child of the current step in the parent. If it's null, this flow doesn't track progress. `open val progressTracker: ProgressTracker`

### Functions

#### finaliseTx | `fun finaliseTx(tx: SignedTransaction, sessions: Collection<FlowSession>, message: String): SignedTransaction`

### Companion Object Functions

#### tracker | `fun tracker(): ProgressTracker`

### Extension Functions

#### receiveAll | Suspends until a message has been received for each session in the specified sessions. `fun FlowLogic<*>.receiveAll(session: Pair<FlowSession, Class<out Any>>, vararg sessions: Pair<FlowSession, Class<out Any>>): Map<FlowSession, UntrustworthyData<Any>>` `fun <R : Any> FlowLogic<*>.receiveAll(receiveType: Class<R>, session: FlowSession, vararg sessions: FlowSession): List<UntrustworthyData<R>>` `fun <R : Any> FlowLogic<*>.receiveAll(session: FlowSession, vararg sessions: FlowSession): List<UntrustworthyData<R>>`

### Inheritors

#### CashExitFlow | Initiates a flow that produces an cash exit transaction. `class CashExitFlow : AbstractCashFlow<Result>`
#### CashIssueAndPaymentFlow | Initiates a flow that self-issues cash and then send this to a recipient. `class CashIssueAndPaymentFlow : AbstractCashFlow<Result>`
#### CashIssueFlow | Initiates a flow that self-issues cash (which should then be sent to recipient(s) using a payment transaction). `class CashIssueFlow : AbstractCashFlow<Result>`
#### CashPaymentFlow | Initiates a flow that sends cash to a recipient. `open class CashPaymentFlow : AbstractCashFlow<Result>`