Как встречная сторона потока @InitiatedBy получает параметры? - PullRequest
0 голосов
/ 08 сентября 2018

Как поток контрагента (например, покупатель в TwoPartyTradeFlow) получает параметры? Документация не объясняет это мне очень ясно.

Пока что мне кажется, что в TwoPartyTradeFlow Продавцу передается сеанс потока другой стороны, хотя вы также можете инициализировать это самостоятельно, используя initiateFlow(party). В других примерах, которые я видел, контрагент получает сеанс потока инициатора. Однако в этом фрагменте кода покупатель получает дополнительные параметры, такие как нотариус, цена и т. Д. Как они передаются?

open class Buyer(private val sellerSession: FlowSession,
                 private val notary: Party,
                 private val acceptablePrice: Amount<Currency>,
                 private val typeToBuy: Class<out OwnableState>,
                 private val anonymous: Boolean) : FlowLogic<SignedTransaction>() {

    @Suspendable
    override fun call(): SignedTransaction {
        TODO()
    }
}

Этот код был взят из первого фрагмента кода здесь. https://docs.corda.net/head/flow-state-machines.html

1 Ответ

0 голосов
/ 09 сентября 2018

TwoPartyTradeFlow.Seller и TwoPartyTradeFlow.Buyer являются встроенными потоками. Фактические потоки, которые их вызывают,

Инициирование SellerFlow здесь

InitiatedBy BuyerFlow здесь

SellerFlow будет преимущественно отправлять некоторую полезную нагрузку покупателю, где BuyerFlow, являющийся ответчиком, получит их, а затем заполнит TwoPartyTradeFlow.Buyer(...) данными параметрами.

Полезная ссылка о том, как работают встроенные потоки здесь

...