unf.Broker
- class unf.Broker
Intermediate object between the Usd Stage and any clients that needs asynchronous handling and upstream filtering of notices.
- static Create(stage)
Create a broker from a Usd Stage.
If a broker has already been created from this stage, it will be returned. Otherwise, a new one will be created and returned.
Example:
stage = Usd.Stage.CreateInMemory() broker = Broker(stage)
- Parameters:
stage – Instance of Usd Stage.
- Returns:
Instance of
unf.Broker.
- GetStage()
Return Usd Stage associated with the broker.
- Returns:
Instance of Usd Stage.
- IsInTransaction()
Indicate whether a notice transaction has been started.
- Returns:
Boolean value.
- BeginTransaction(predicate=CapturePredicate.Default())
Start a notice transaction.
Notices derived from
unf.Notice.StageNoticewill be held during the transaction and emitted at the end.By default, all
unf.Notice.StageNoticenotices will be captured during the entire scope of the transaction. A function predicate or aunf.CapturePredicateinstance can be passed to influence which notices are captured.Notices that are not captured will not be emitted.
Example:
# Block all notices emitted within the transaction. broker.BeginTransaction(predicate=CapturePredicate.BlockAll()) # Block all notices from type 'Foo' emitted during transaction. broker.BeginTransaction(predicate=lambda n: not isinstance(n, Foo))
Warning
Each transaction started must be closed with
EndTransaction(). It is preferrable to useunf.NoticeTransactionover this API to safely manage transactions.- Parameters:
predicate – Instance of
unf.CapturePredicateor function taking aunf.Notice.StageNoticeinstance and returning a boolean value. By default, theunf.apturePredicate.Default()predicate is used.
- EndTransaction()
Stop a notice transaction.
This will trigger the emission of all captured
unf.Notice.StageNoticenotices. Each notice type will be consolidated before emission if applicable.Warning
It is preferrable to use
unf.NoticeTransactionover this API to safely manage transactions.