Class CIReceiver

  • All Implemented Interfaces:
    Receiver

    public class CIReceiver
    extends AbstractReceiver
    An implementation of the ptolemy.actor.Receiver interface for the CI domain. This receiver provides a FIFO buffer between an active actor and an inactive actor or two inactive actors. When an active actor with push output puts a token in a receiver, the inactive actor that reads from the receiver will be put in the task queue of the director. When the director fires an inactive actor, the actors that receive data from this actor are executed as data-driven. For an active actor with pull input, its actor manager will be notified when an input token arrives, and will continue to iterate the actor.

    Since:
    Ptolemy II 3.0
    Version:
    $Id$
    Author:
    Xiaojun Liu, Yang Zhao
    Pt.AcceptedRating:
    Red (liuxj)
    Pt.ProposedRating:
    Yellow (liuxj)
    • Constructor Detail

      • CIReceiver

        public CIReceiver​(CIDirector director)
        Construct an empty receiver.
        Parameters:
        director - The director that creates this receiver.
    • Method Detail

      • hasRoom

        public boolean hasRoom()
        Return true. The receiver acts as an infinite FIFO buffer.
        Specified by:
        hasRoom in interface Receiver
        Specified by:
        hasRoom in class AbstractReceiver
        Returns:
        True if the next call to put() will not result in a NoRoomException.
      • hasRoom

        public boolean hasRoom​(int numberOfTokens)
        Return true if the receiver has room to put the specified number of tokens into it (via the put() method). Returning true in this method guarantees that the next numberOfTokens calls to put() or a corresponding call to putArray() will not result in an exception.
        Specified by:
        hasRoom in interface Receiver
        Specified by:
        hasRoom in class AbstractReceiver
        Parameters:
        numberOfTokens - The number of tokens to put into this receiver.
        Returns:
        True if the next numberOfTokens calls to put() will not result in a NoRoomException.
      • hasToken

        public boolean hasToken()
        Return true if the receiver contains a token that can be obtained by calling the get() method.
        Specified by:
        hasToken in interface Receiver
        Specified by:
        hasToken in class AbstractReceiver
        Returns:
        True if the next call to get() will not result in a NoTokenException.
      • hasToken

        public boolean hasToken​(int numberOfTokens)
        Return true if the receiver contains the specified number of tokens. In an implementation, returning true in this method guarantees that the next numberOfTokens calls to get(), or a corresponding call to getArray(), will not result in an exception.
        Specified by:
        hasToken in interface Receiver
        Specified by:
        hasToken in class AbstractReceiver
        Parameters:
        numberOfTokens - The number of tokens desired.
        Returns:
        True if the next numberOfTokens calls to get() will not result in a NoTokenException.
      • put

        public void put​(Token token)
                 throws NoRoomException
        Put the specified token into this receiver.
        Specified by:
        put in interface Receiver
        Specified by:
        put in class AbstractReceiver
        Parameters:
        token - The token to put into the receiver, or null to put no token.
        Throws:
        NoRoomException - If there is no room in the receiver.
      • putArray

        public void putArray​(Token[] tokenArray,
                             int numberOfTokens)
                      throws NoRoomException
        Put a portion of the specified token array into this receiver. The first numberOfTokens elements of the token array are put into this receiver.
        Specified by:
        putArray in interface Receiver
        Overrides:
        putArray in class AbstractReceiver
        Parameters:
        tokenArray - The array containing tokens to put into this receiver.
        numberOfTokens - The number of elements of the token array to put into this receiver.
        Throws:
        NoRoomException - If the token array cannot be put.