Interface BufferingProfile

  • All Known Implementing Classes:
    DummyDisplay, DummySource, DummyTransformer, SharedBufferTransformer

    public interface BufferingProfile

    Class comments

    BufferingProfile is an interface which when implemented by SDF actors Lets the OptimizingSDFDirector choose from different firings with different properties For now there are two firing modes define, one where the actor may assume it has exclusive access to the information encapsulated by the input tokens. In particular, this is used for models where tokens communicate references to shared data structures such as video frames in image processing. In the alternative firing mode, the actor may not assume exclusive access and hence is not allowed to modify the frame.It may have to copy the frame first instead. FIXME: we may want to generalize the notion of a profile to make it more generic and allow more than two modes of firing.

    See OptimizingSDFDirector for more information.

    Since:
    Ptolemy II 10.0
    Version:
    $Id$
    Author:
    Marc Geilen
    See Also:
    OptimizingSDFScheduler
    Pt.AcceptedRating:
    Red ()
    Pt.ProposedRating:
    Red (mgeilen)
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      int exclusiveBuffers()
      returns the number of buffers required upon calling exclusive fire in excess of the input and output buffer.
      int exclusiveExecutionTime()
      returns (an estimate of) the execution time of an exclusive buffer firing of the actor.
      int iterate​(int iterationCount, boolean fireExclusive)
      Invoke a specified number of iterations of the actor in either shared or exclusive mode as indicated by the fireExclusive argument.
      int sharedBuffers()
      returns the number of buffers required upon calling shared fire in excess of the input and output buffer.
      int sharedExecutionTime()
      returns (an estimate of) the execution time of a shared buffer firing of the actor.
    • Method Detail

      • sharedBuffers

        int sharedBuffers()
        returns the number of buffers required upon calling shared fire in excess of the input and output buffer.
        Returns:
        the number of buffers required for a shared buffer firing
      • exclusiveBuffers

        int exclusiveBuffers()
        returns the number of buffers required upon calling exclusive fire in excess of the input and output buffer.
        Returns:
        the number of buffers required for an exclusive buffer firing
      • sharedExecutionTime

        int sharedExecutionTime()
        returns (an estimate of) the execution time of a shared buffer firing of the actor.
        Returns:
        execution time of a shared buffer firing
      • exclusiveExecutionTime

        int exclusiveExecutionTime()
        returns (an estimate of) the execution time of an exclusive buffer firing of the actor.
        Returns:
        execution time of an exclusive buffer firing
      • iterate

        int iterate​(int iterationCount,
                    boolean fireExclusive)
             throws IllegalActionException
        Invoke a specified number of iterations of the actor in either shared or exclusive mode as indicated by the fireExclusive argument.
        Parameters:
        iterationCount - The number of iterations to perform.
        fireExclusive - whether to fire exclusive or not.
        Returns:
        NOT_READY, STOP_ITERATING, or COMPLETED.
        Throws:
        IllegalActionException - If iterating is not permitted, or if prefire(), fire(), or postfire() throw it.