Class ModalController
- java.lang.Object
-
- ptolemy.kernel.util.NamedObj
-
- ptolemy.cg.kernel.generic.CodeGeneratorAdapter
-
- ptolemy.cg.kernel.generic.program.ProgramCodeGeneratorAdapter
-
- ptolemy.cg.kernel.generic.program.NamedProgramCodeGeneratorAdapter
-
- ptolemy.cg.adapter.generic.program.procedural.adapters.ptolemy.domains.modal.modal.ModalController
-
- All Implemented Interfaces:
java.lang.Cloneable
,Changeable
,Debuggable
,DebugListener
,Derivable
,ModelErrorHandler
,MoMLExportable
,Moveable
,Nameable
- Direct Known Subclasses:
ModalController
,ModalController
public class ModalController extends NamedProgramCodeGeneratorAdapter
Code generator helper for modal controller.- Since:
- Ptolemy II 10.0
- Version:
- $Id$
- Author:
- Shanna-Shaye Forbes, based on Gang Zhou's ptolemy/codegen work. Contributor: Christopher Brooks
- Pt.AcceptedRating:
- red (sssf)
- Pt.ProposedRating:
- red (sssf)
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class ptolemy.cg.kernel.generic.program.NamedProgramCodeGeneratorAdapter
NamedProgramCodeGeneratorAdapter.VariableScope
-
Nested classes/interfaces inherited from class ptolemy.cg.kernel.generic.program.ProgramCodeGeneratorAdapter
ProgramCodeGeneratorAdapter.Channel
-
Nested classes/interfaces inherited from class ptolemy.kernel.util.NamedObj
NamedObj.ContainedObjectsIterator
-
-
Field Summary
Fields Modifier and Type Field Description protected static java.lang.String
_eol
End of line character.protected ModalController
_myController
The associated modal controller component.-
Fields inherited from class ptolemy.cg.kernel.generic.program.ProgramCodeGeneratorAdapter
_component, _defaultBlocks, _templateParser
-
Fields inherited from class ptolemy.kernel.util.NamedObj
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _deferChangeRequests, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS
-
-
Constructor Summary
Constructors Constructor Description ModalController(ModalController component)
Construct the code generator helper associated with the given modal controller.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected boolean
_generateRefinementCode(java.lang.StringBuffer code)
Generate code for the firing of refinements.protected void
_updateConnectedPortsOffset(IOPort port, java.lang.StringBuffer code, int rate)
Update the offsets of the buffers associated with the ports connected with the given port in its downstream.protected void
_updatePortOffset(TypedIOPort port, java.lang.StringBuffer code, int rate)
Update the read offsets of the buffer associated with the given port.java.lang.String
generateFireCode()
Generate the fire code.java.lang.String
generateFireFunctionCode()
Generate The fire function code.java.lang.String
generatePreinitializeCode()
Generate the preinitialization code for the director.void
generateTransferInputsCode(TypedIOPort inputPort, java.lang.StringBuffer code)
Generate code for transferring enough tokens to complete an internal iteration.void
generateTransferOutputsCode(TypedIOPort outputPort, java.lang.StringBuffer code)
Generate code for transferring enough tokens to fulfill the output production rate.-
Methods inherited from class ptolemy.cg.kernel.generic.program.NamedProgramCodeGeneratorAdapter
_generateFireCode, _generateTypeConvertStatement, analyzeTypeConvert, copyFilesToCodeDirectory, generateInitializeCode, generateMainLoop, generateModeTransitionCode, generatePostfireCode, generatePrefireCode, generatePreinitializeMethodBodyCode, generateSimpleName, generateTypeConvertFireCode, generateTypeConvertFireCode, generateVariableDeclaration, generateVariableInitialization, generateWrapupCode, getAddTimeString, getBufferSize, getBufferSize, getComponent, getDeclareSharedCode, getDefaultBlocks, getFireFunctionParameters, getHeaderFiles, getIncludeDirectories, getLibraries, getLibraryDirectories, getModifiedVariables, getName, getParameterValue, getReference, getReference, getSharedCode, getSinkChannels, getSourceTimeString, getTimeSourcePortName, getTypeConvertChannels, getTypeConvertReference, getTypeConvertSinkChannels, setupAdapter, targetType
-
Methods inherited from class ptolemy.cg.kernel.generic.program.ProgramCodeGeneratorAdapter
_generateBlockByName, getAdapter, getCodeGenerator, getTemplateParser, processCode, setCodeGenerator, setTemplateParser, toString
-
Methods inherited from class ptolemy.cg.kernel.generic.CodeGeneratorAdapter
createDecoratorAttributes, generateName
-
Methods inherited from class ptolemy.kernel.util.NamedObj
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _containedDecorators, _copyChangeRequestList, _debug, _debug, _debug, _debug, _debug, _description, _executeChangeRequests, _exportMoMLContents, _getContainedObject, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _notifyHierarchyListenersAfterChange, _notifyHierarchyListenersBeforeChange, _propagateExistence, _propagateValue, _removeAttribute, _splitName, _stripNumericSuffix, _validateSettables, addChangeListener, addDebugListener, addHierarchyListener, attributeChanged, attributeDeleted, attributeList, attributeList, attributeTypeChanged, clone, clone, containedObjectsIterator, decorators, 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, getPrototypeList, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, notifyOfNameChange, propagateExistence, propagateValue, propagateValues, removeAttribute, removeChangeListener, removeDebugListener, removeHierarchyListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setName, setPersistent, setSource, sortContainedObjects, toplevel, uniqueName, validateSettables, workspace
-
-
-
-
Field Detail
-
_eol
protected static final java.lang.String _eol
End of line character. Under Unix: "\n", under Windows: "\n\r". We use a end of line character so that the files we generate have the proper end of line character for use by other native tools.
-
_myController
protected ModalController _myController
The associated modal controller component.
-
-
Constructor Detail
-
ModalController
public ModalController(ModalController component)
Construct the code generator helper associated with the given modal controller.- Parameters:
component
- The associated modal controller component.
-
-
Method Detail
-
generatePreinitializeCode
public java.lang.String generatePreinitializeCode() throws IllegalActionException
Generate the preinitialization code for the director.- Overrides:
generatePreinitializeCode
in classNamedProgramCodeGeneratorAdapter
- Returns:
- string containing the preinitializaton code
- Throws:
IllegalActionException
- If thrown by the superclass or thrown while generating code for the director.
-
generateFireCode
public java.lang.String generateFireCode() throws IllegalActionException
Description copied from class:NamedProgramCodeGeneratorAdapter
Generate the fire code. In this base class, add the name of the associated component in the comment. It checks the inline parameter of the code generator. If the value is true, it generates the actor fire code and the necessary type conversion code. Otherwise, it generate an invocation to the actor function that is generated by generateFireFunctionCode.- Overrides:
generateFireCode
in classNamedProgramCodeGeneratorAdapter
- Returns:
- The generated code.
- Throws:
IllegalActionException
- Not thrown in this base class.
-
generateFireFunctionCode
public java.lang.String generateFireFunctionCode() throws IllegalActionException
Generate The fire function code. This method is called when the firing code of each actor is not inlined. Each actor's firing code is in a function with the same name as that of the actor.- Overrides:
generateFireFunctionCode
in classNamedProgramCodeGeneratorAdapter
- Returns:
- The fire function code.
- Throws:
IllegalActionException
- If thrown while generating fire code.
-
generateTransferInputsCode
public void generateTransferInputsCode(TypedIOPort inputPort, java.lang.StringBuffer code) throws IllegalActionException
Generate code for transferring enough tokens to complete an internal iteration.- Parameters:
inputPort
- The port to transfer tokens.code
- The string buffer that the generated code is appended to.- Throws:
IllegalActionException
- If thrown while transferring tokens.
-
generateTransferOutputsCode
public void generateTransferOutputsCode(TypedIOPort outputPort, java.lang.StringBuffer code) throws IllegalActionException
Generate code for transferring enough tokens to fulfill the output production rate.- Parameters:
outputPort
- The port to transfer tokens.code
- The string buffer that the generated code is appended to.- Throws:
IllegalActionException
- If thrown while transferring tokens.
-
_generateRefinementCode
protected boolean _generateRefinementCode(java.lang.StringBuffer code) throws IllegalActionException
Generate code for the firing of refinements.- Parameters:
code
- The string buffer that the generated code is appended to.- Returns:
- The refinemebt code.
- Throws:
IllegalActionException
- If the helper associated with an actor throws it while generating fire code for the actor.
-
_updatePortOffset
protected void _updatePortOffset(TypedIOPort port, java.lang.StringBuffer code, int rate) throws IllegalActionException
Update the read offsets of the buffer associated with the given port.- Parameters:
port
- The port whose read offset is to be updated.code
- The string buffer that the generated code is appended to.rate
- The rate, which must be greater than or equal to 0.- Throws:
IllegalActionException
- If thrown while reading or writing offsets, or getting the buffer size, or if the rate is less than 0.
-
_updateConnectedPortsOffset
protected void _updateConnectedPortsOffset(IOPort port, java.lang.StringBuffer code, int rate) throws IllegalActionException
Update the offsets of the buffers associated with the ports connected with the given port in its downstream.- Parameters:
port
- The port whose directly connected downstream actors update their write offsets.code
- The string buffer that the generated code is appended to.rate
- The rate, which must be greater than or equal to 0.- Throws:
IllegalActionException
- If thrown while reading or writing offsets, or getting the buffer size, or if the rate is less than 0.
-
-