JoinReceiver Class
Microsoft Robotics
Microsoft Robotics Class Reference
Assembly: Microsoft.Ccr.Core (in Microsoft.Ccr.Core.dll) Version: 4.0.261.0 (4.0.261.0)
Join implementation across multiple ports
Namespace: Microsoft.Ccr.Core
Assembly: Microsoft.Ccr.Core (in Microsoft.Ccr.Core.dll) Version: 4.0.261.0 (4.0.261.0)
The join arbiter will attach individual receivers on each port participating in the join.
As messages get posted in the ports, the parent arbiter (an instance of JoinReceiver)
will determine if it has messages across all ports. Without actually consuming the messages
It will schedule a commit phase and try to extract, using the Test() method on the ports,
all the messages required for the join to complete. If all messages are retrived, commit succeeds but
the arbiter will still ask its parent (since join can be nested under choice or interleave)
if it can proceed scheduling the user delegate. If it can, it schedules a task with all the messages as arguments.
If it fails, it will call UnrollPartialCommit to put the messages back in their original ports
System..::..Object
Microsoft.Ccr.Core..::..TaskCommon
Microsoft.Ccr.Core.Arbiters..::..ReceiverTask
Microsoft.Ccr.Core..::..JoinReceiverTask
Microsoft.Ccr.Core..::..JoinReceiver
Microsoft.Ccr.Core..::..TaskCommon
Microsoft.Ccr.Core.Arbiters..::..ReceiverTask
Microsoft.Ccr.Core..::..JoinReceiverTask
Microsoft.Ccr.Core..::..JoinReceiver
Show: