trait Sending extends Sender
Defines the behavior for a protocol that provides the sending of messages as capability.
The trait is used to complement the functionality of an instance of ProtocolImpl by declaring that the instance is capable to send a message through the network. Thus, it is usually used together with Receiving. For instance,
class FIFOChannel (p: NekoProcess, nickname: String) extends ProtocolImpl(p, nickname) with Sending with Receiving { def onSend = { case ... } }
There are cases where this trait could be used without Receiving, for instance, by a protocol that would only record what it is sent to, without sending anything through the actual network. This is however a very rare situation, and can safely be ignored as far as the lecture I445 is concerned.
- Alphabetic
- By Inheritance
- Sending
- Sender
- NamedEntity
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Abstract Value Members
-
abstract
def
name: String
- Definition Classes
- NamedEntity
-
abstract
def
onSend: PartialFunction[Event, Unit]
Implements the behavior of the protocol when sending a message.
Implements the behavior of the protocol when sending a message.
This must be defined in any concrete subclass. It is defined as a partial function taking a message as input and returning nothing.
Typically, the partial function will implement different behavior depending on the type of message being sent. For instance,
def onSend = { case MutexClient.Request => want = true ; myTS = lc.time SEND(Request(me, ALL-me, myTS)) case MutexClient.Release => SEND(Ack(me, pendingAcks)) ackCount = 0 ; want = false ; pendingAcks = Set.empty }
-
abstract
def
receiver: Receiver
the target of any deliver operations.
the target of any deliver operations. Typically, this is the dispatcher of the process.
-
abstract
def
senderOpt: Option[Sender]
- Definition Classes
- NamedEntity
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
- def +(other: String): String
- def ->[B](y: B): (Sending, B)
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
DELIVER(m: Event): Unit
provides the message or signal to the application.
provides the message or signal to the application. The message or signal passed as argument will be delivered to any protocol that has registered (e.g., using the method ListenerUtils!.listenTo) for this type of message/signal to the dispatcher providing in receiver.
- m
the message or signal to deliver
- Attributes
- protected[this]
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @HotSpotIntrinsicCandidate()
-
def
context: Option[PID]
- Definition Classes
- NamedEntity
- def ensuring(cond: (Sending) ⇒ Boolean, msg: ⇒ Any): Sending
- def ensuring(cond: (Sending) ⇒ Boolean): Sending
- def ensuring(cond: Boolean, msg: ⇒ Any): Sending
- def ensuring(cond: Boolean): Sending
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def formatted(fmtstr: String): String
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
send(m: Event): Unit
Used to request the protocol to send a given message.
-
def
simpleName: String
- Definition Classes
- NamedEntity
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
- def →[B](y: B): (Sending, B)