Declare an input channel of the given type; the returned object takes a partial function:
Declare an input channel of the given type; the returned object takes a partial function:
channel[A] { case (a, s) => // a is of type A and // s is a ChannelRef for the sender, capable of sending the declared reply type for A }
Create a child actor with properly typed ChannelRef and the given name,
verifying that this actor can handle everything which the child tries to
send via its parent
ChannelRef.
Create a child actor with properly typed ChannelRef and the given name,
verifying that this actor can handle everything which the child tries to
send via its parent
ChannelRef.
Create a child actor with properly typed ChannelRef, verifying that this
actor can handle everything which the child tries to send via its
parent
ChannelRef.
Create a child actor with properly typed ChannelRef, verifying that this
actor can handle everything which the child tries to send via its
parent
ChannelRef.
Properly typed ChannelRef for the context.
Properly typed ChannelRef for the context.parent.
The properly typed self-channel is used implicitly when sending to other typed channels for verifying that replies can be handled.
Typed channels atop untyped actors.
The idea is that the actor declares all its input types up front, including what it expects the sender to handle wrt.replies, and then ChannelRef carries this information for statically verifying that messages sent to an actor have an actual chance of being processed.
There are several implementation-imposed restrictions: