at.dms.kjc.backendSupport
Class UnbufferredPushChannel

java.lang.Object
  extended by at.dms.kjc.backendSupport.Channel
      extended by at.dms.kjc.backendSupport.UnbufferredPushChannel

public class UnbufferredPushChannel
extends Channel

A Channel with the single purpose of holding the name of a push() routine. Such a channel is used to connect a filter to a splitter when the splitter and the filter are laid out on the same ComputeNode.

Author:
dimock

Field Summary
 
Fields inherited from class at.dms.kjc.backendSupport.Channel
bufferStore, extraCount, ident, rotationLength, theEdge, unique_id
 
Method Summary
 void addChannelForHeaders(Channel c)
          Add a channel to produce upstream (write) headers for:
 List<JStatement> beginInitWrite()
           
 List<JStatement> beginSteadyWrite()
           
 List<JStatement> endInitWrite()
           
 List<JStatement> endSteadyWrite()
           
static UnbufferredPushChannel getChannel(Edge edge, String pushName)
          Make a new Channel or return an already-made channel.
 String pushMethodName()
           
 List<JStatement> topOfWorkSteadyWrite()
           
 void updatePushMethodName(String pushName)
           
 
Methods inherited from class at.dms.kjc.backendSupport.Channel
addChannel, assignFromPeekMethod, assignFromPeekMethodName, assignFromPopMethod, assignFromPopMethodName, beginInitRead, beginSteadyRead, dataDecls, dataDeclsH, endInitRead, endSteadyRead, findChannel, getBuffers, getDest, getExtraCount, getIdent, getSource, getType, peekMethod, peekMethodName, popManyMethod, popManyMethodName, popMethod, popMethodName, postPreworkInitRead, printBuffers, pushMethod, readDecls, readDeclsExtern, reset, setExtralength, setRotationLengths, topOfWorkSteadyRead, writeDecls, writeDeclsExtern
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getChannel

public static UnbufferredPushChannel getChannel(Edge edge,
                                                String pushName)
Make a new Channel or return an already-made channel.

Parameters:
edge - The edge that this channel implements.
pushName - The name of the push routine that will be used.
Returns:
A channel for the passed edge with a where pushMethodName() returns pushName.

addChannelForHeaders

public void addChannelForHeaders(Channel c)
Add a channel to produce upstream (write) headers for:

Parameters:
c - a Channel connected to the splitter that this channel calls.

pushMethodName

public String pushMethodName()
Overrides:
pushMethodName in class Channel

updatePushMethodName

public void updatePushMethodName(String pushName)

beginInitWrite

public List<JStatement> beginInitWrite()
Overrides:
beginInitWrite in class Channel

endInitWrite

public List<JStatement> endInitWrite()
Overrides:
endInitWrite in class Channel

beginSteadyWrite

public List<JStatement> beginSteadyWrite()
Overrides:
beginSteadyWrite in class Channel

endSteadyWrite

public List<JStatement> endSteadyWrite()
Overrides:
endSteadyWrite in class Channel

topOfWorkSteadyWrite

public List<JStatement> topOfWorkSteadyWrite()
Overrides:
topOfWorkSteadyWrite in class Channel