JoinReceiver Class

Microsoft Robotics Class Reference

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)

Syntax

public class JoinReceiver : JoinReceiverTask

Remarks

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

Inheritance Hierarchy

System. . :: . .Object
  Microsoft.Ccr.Core. . :: . .TaskCommon
    Microsoft.Ccr.Core.Arbiters. . :: . .ReceiverTask
      Microsoft.Ccr.Core. . :: . .JoinReceiverTask
        Microsoft.Ccr.Core..::..JoinReceiver

See Also

JoinReceiver Members

Microsoft.Ccr.Core Namespace