ptolemy.codegen.c.domains.hdf.kernel
Class HDFFSMDirector

java.lang.Object
  extended by ptolemy.kernel.util.NamedObj
      extended by ptolemy.codegen.kernel.CodeGeneratorHelper
          extended by ptolemy.codegen.actor.Director
              extended by ptolemy.codegen.c.domains.fsm.kernel.FSMDirector
                  extended by ptolemy.codegen.c.domains.fsm.kernel.MultirateFSMDirector
                      extended by ptolemy.codegen.c.domains.hdf.kernel.HDFFSMDirector
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, ActorCodeGenerator, ComponentCodeGenerator, Changeable, Debuggable, DebugListener, Derivable, ModelErrorHandler, MoMLExportable, Moveable, Nameable

public class HDFFSMDirector
extends MultirateFSMDirector

Code generator helper class associated with the HDFFSMDirector class.

Since:
Ptolemy II 6.0
Version:
$Id: HDFFSMDirector.java 57040 2010-01-27 20:52:32Z cxh $
Author:
Gang Zhou
See Also:
HDFFSMDirector, Serialized Form
Accepted Rating:
Red (zgang)
Proposed Rating:
Yellow (cxh)

Nested Class Summary
 
Nested classes/interfaces inherited from class ptolemy.codegen.kernel.CodeGeneratorHelper
CodeGeneratorHelper.Channel, CodeGeneratorHelper.VariableScope
 
Nested classes/interfaces inherited from class ptolemy.kernel.util.NamedObj
NamedObj.ContainedObjectsIterator
 
Field Summary
 
Fields inherited from class ptolemy.codegen.actor.Director
_director, _eol, _INDENT1, _INDENT2, _INDENT3, _INDENT4
 
Fields inherited from class ptolemy.codegen.kernel.CodeGeneratorHelper
_codeGenerator, _codeStream, _parseTreeCodeGenerator, _portConversions, _referencedParameters
 
Fields inherited from class ptolemy.kernel.util.NamedObj
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS
 
Constructor Summary
HDFFSMDirector(HDFFSMDirector director)
          Construct the code generator helper associated with the given HDFFSMDirector.
 
Method Summary
 java.lang.String createOffsetVariablesIfNeeded()
          Generate code for declaring read and write offset variables if needed.
 java.lang.String generateFireCode()
          Generate the code for the firing of actors controlled by this director.
 void generateModeTransitionCode(java.lang.StringBuffer code)
          Generate mode transition code.
 java.lang.String generatePreinitializeCode()
          Generate the preinitialize code for this director.
 
Methods inherited from class ptolemy.codegen.c.domains.fsm.kernel.MultirateFSMDirector
_createOffsetVariablesIfNeeded, _createOffsetVariablesIfNeeded, _generateInitialTransitionCode, _updateConfigurationNumber, _updatePortBufferSize, generateInitializeCode, generateTransferInputsCode, generateTransferOutputsCode
 
Methods inherited from class ptolemy.codegen.c.domains.fsm.kernel.FSMDirector
_generateRefinementCode, generateFireFunctionCode
 
Methods inherited from class ptolemy.codegen.actor.Director
_ceilToPowerOfTwo, _getIndentPrefix, _updateConnectedPortsOffset, _updatePortOffset, generateCodeForGet, generateCodeForSend, generateMainLoop, generateOffset, generatePostfireCode, generateVariableDeclaration, generateVariableInitialization, generateWrapupCode, getBufferSize, getComponent, getHeaderFiles, getIncludeDirectories, getLibraries, getLibraryDirectories, getModifiedVariables, getReference, getReference, getReferenceChannels, getWCET
 
Methods inherited from class ptolemy.codegen.kernel.CodeGeneratorHelper
_createBufferSizeAndOffsetMap, _createInputBufferSizeAndOffsetMap, _findClosedParen, _generateBlockCode, _generateBlockCode, _generateFireCode, _generateTypeConvertMethod, _generateTypeConvertStatement, _generateTypeConvertStatements, _getCastType, _getChannelAndOffset, _getFireFunctionArguments, _getHelper, _getHelper, _getReference, _getReferenceChannels, _getTypeConvertChannels, _getTypeConvertReference, _indexOf, _replaceMacro, addFunctionUsed, addNewTypeUsed, analyzeTypeConvert, checkLocal, checkRemote, codeGenType, copyFilesToCodeDirectory, generateChannelOffset, generateFireFunctionCode2, generateName, generateOffset, generatePortReference, generatePrefireCode, generateSimpleName, generateTypeConvertFireCode, generateTypeConvertFireCode, generateVariableName, getBufferSize, getCodeGenerator, getDefaultBlocks, getDirector, getDirectorHelper, getFunctionInvocation, getNewInvocation, getObject, getParameterValue, getParseTreeCodeGenerator, getPort, getRates, getReadOffset, getReference, getReference, getReference, getReference, getSharedCode, getSinkChannels, getSize, getSourceChannel, getWriteOffset, isPrimitive, isPrimitive, parseList, processCode, resetInputPortsOffset, setBufferSize, setCodeGenerator, setReadOffset, setWriteOffset, targetType, toString
 
Methods inherited from class ptolemy.kernel.util.NamedObj
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _debug, _debug, _debug, _debug, _debug, _description, _exportMoMLContents, _getContainedObject, _isMoMLSuppressed, _markContentsDerived, _propagateExistence, _propagateValue, _recordDecoratedAttributes, _removeAttribute, _splitName, _stripNumericSuffix, _validateSettables, addChangeListener, addDebugListener, attributeChanged, attributeList, attributeList, attributeTypeChanged, clone, clone, containedObjectsIterator, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttribute, getAttributes, getChangeListeners, getClassName, getContainer, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getElementName, getFullName, getModelErrorHandler, getName, getName, getPrototypeList, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, propagateValue, propagateValues, removeChangeListener, removeDebugListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setName, setPersistent, setSource, sortContainedObjects, toplevel, uniqueName, validateSettables, workspace
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

HDFFSMDirector

public HDFFSMDirector(HDFFSMDirector director)
Construct the code generator helper associated with the given HDFFSMDirector.

Parameters:
director - The associated ptolemy.domains.hdf.kernel.HDFFSMDirector
Method Detail

createOffsetVariablesIfNeeded

public java.lang.String createOffsetVariablesIfNeeded()
                                               throws IllegalActionException
Generate code for declaring read and write offset variables if needed. First find out the maximum buffer sizes needed for controller ports in one global iteration. Then relay the information of firings per global iteration of the modal model (which is the container of this director) to the refinements if necessary. Finally call the same method in its super class to create read and write offset variables if needed.

Specified by:
createOffsetVariablesIfNeeded in interface ActorCodeGenerator
Overrides:
createOffsetVariablesIfNeeded in class MultirateFSMDirector
Returns:
The generated code.
Throws:
IllegalActionException - If thrown while creating offset variables.

generateFireCode

public java.lang.String generateFireCode()
                                  throws IllegalActionException
Generate the code for the firing of actors controlled by this director. It generates code for firing refinements and setting a variable to record it.

Specified by:
generateFireCode in interface ActorCodeGenerator
Overrides:
generateFireCode in class MultirateFSMDirector
Returns:
The generated fire code.
Throws:
IllegalActionException - If the helper associated with an actor throws it while generating fire code for the actor.

generateModeTransitionCode

public void generateModeTransitionCode(java.lang.StringBuffer code)
                                throws IllegalActionException
Generate mode transition code. The mode transition code generated in this method is executed after each global iteration.

Specified by:
generateModeTransitionCode in interface ActorCodeGenerator
Overrides:
generateModeTransitionCode in class Director
Parameters:
code - The string buffer that the generated code is appended to.
Throws:
IllegalActionException - If the director helper throws it while generating mode transition code.

generatePreinitializeCode

public java.lang.String generatePreinitializeCode()
                                           throws IllegalActionException
Generate the preinitialize code for this director. Declare a variable which is used to record the firing of this director.

Specified by:
generatePreinitializeCode in interface ActorCodeGenerator
Overrides:
generatePreinitializeCode in class MultirateFSMDirector
Returns:
The generated preinitialize code.
Throws:
IllegalActionException - If getting the helper fails, or if generating the preinitialize code for a helper fails, or if there is a problem processing the code.