Package ptolemy.domains.ci.kernel
Class CIReceiver
- java.lang.Object
-
- ptolemy.actor.AbstractReceiver
-
- ptolemy.domains.ci.kernel.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 Summary
Constructors Constructor Description CIReceiver(CIDirector director)
Construct an empty receiver.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clear()
Clear this receiver.Token
get()
Get a token from this receiver.boolean
hasRoom()
Return true.boolean
hasRoom(int numberOfTokens)
Return true if the receiver has room to put the specified number of tokens into it (via the put() method).boolean
hasToken()
Return true if the receiver contains a token that can be obtained by calling the get() method.boolean
hasToken(int numberOfTokens)
Return true if the receiver contains the specified number of tokens.void
put(Token token)
Put the specified token into this receiver.void
putArray(Token[] tokenArray, int numberOfTokens)
Put a portion of the specified token array into this receiver.-
Methods inherited from class ptolemy.actor.AbstractReceiver
elementList, getArray, getContainer, getCurrentTime, getModelTime, isKnown, putArrayToAll, putToAll, reset, setContainer, toString
-
-
-
-
Constructor Detail
-
CIReceiver
public CIReceiver(CIDirector director)
Construct an empty receiver.- Parameters:
director
- The director that creates this receiver.
-
-
Method Detail
-
clear
public void clear()
Clear this receiver.- Specified by:
clear
in interfaceReceiver
- Overrides:
clear
in classAbstractReceiver
-
get
public Token get() throws NoTokenException
Get a token from this receiver.- Specified by:
get
in interfaceReceiver
- Specified by:
get
in classAbstractReceiver
- Returns:
- A token from this receiver.
- Throws:
NoTokenException
- If there is no token.
-
hasRoom
public boolean hasRoom()
Return true. The receiver acts as an infinite FIFO buffer.- Specified by:
hasRoom
in interfaceReceiver
- Specified by:
hasRoom
in classAbstractReceiver
- 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 interfaceReceiver
- Specified by:
hasRoom
in classAbstractReceiver
- 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 interfaceReceiver
- Specified by:
hasToken
in classAbstractReceiver
- 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 interfaceReceiver
- Specified by:
hasToken
in classAbstractReceiver
- 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 interfaceReceiver
- Specified by:
put
in classAbstractReceiver
- 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 interfaceReceiver
- Overrides:
putArray
in classAbstractReceiver
- 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.
-
-