Class MobileChannelInput

java.lang.Object
org.jcsp.net2.mobile.MobileChannelInput
All Implemented Interfaces:
Serializable, ChannelInput, Poisonable, NetChannelInput, Networked

public final class MobileChannelInput extends Object implements NetChannelInput, Serializable
See Also:
  • Field Details

  • Constructor Details

  • Method Details

    • endRead

      public void endRead()
      Description copied from interface: ChannelInput
      End an extended rendezvous. It must be invoked once (and only once) following a startRead.
      Specified by:
      endRead in interface ChannelInput
    • read

      public Object read()
      Description copied from interface: ChannelInput
      Read an Object from the channel.
      Specified by:
      read in interface ChannelInput
      Returns:
      the object read from the channel
    • startRead

      public Object startRead()
      Description copied from interface: ChannelInput
      Begin an extended rendezvous read from the channel. An extended rendezvous is not completed until the reader has completed its extended action. This method starts an extended rendezvous. When a writer to this channel writes, this method returns what was sent immediately. The extended rendezvous continues with reader actions until the reader invokes endRead. Only then will the writer be released (from its write method). The writer is unaware of the extended nature of the communication.

      The reader process must call endRead at some point after this function, otherwise the writer will not be freed and deadlock will probably follow.

      The reader process may perform any actions between calling startRead and endRead, including communications on other channels. Further communications on this channel, of course, should not be made.

      An extended rendezvous may be started after the channel's Guard has been selected by an Alternative (i.e. startRead instead of read).

      Specified by:
      startRead in interface ChannelInput
      Returns:
      The object read from the channel
    • poison

      public void poison(int strength)
      Description copied from interface: Poisonable
      This injects poison into the channel. If the channel was not explicitly constructed to be poisonable or if the strength of poison is not greater than the channel immunity level, the poison will have no effect.
      Specified by:
      poison in interface Poisonable
      Parameters:
      strength - the strength of the poison (must be >= 0).
    • destroy

      public void destroy()
      Description copied from interface: Networked
      Destroys the Networked construct
      Specified by:
      destroy in interface Networked
    • getLocation

      public NetLocation getLocation()
      Description copied from interface: Networked
      Gets the networked location of the Networked construct
      Specified by:
      getLocation in interface Networked
      Returns:
      The location of the construct
    • setDecoder

      public void setDecoder(NetworkMessageFilter.FilterRx decoder)
      Description copied from interface: NetChannelInput
      Sets the underlying decoder for the channel
      Specified by:
      setDecoder in interface NetChannelInput
      Parameters:
      decoder - The new decoder to use.
    • writeObject

      private void writeObject(ObjectOutputStream output) throws IOException
      Throws:
      IOException
    • readObject

      private void readObject(ObjectInputStream input) throws IOException, ClassNotFoundException
      Throws:
      IOException
      ClassNotFoundException