Package ghidra.program.model.data
Class CountedDynamicDataType
- java.lang.Object
- 
- ghidra.program.model.data.AbstractDataType
- 
- ghidra.program.model.data.DataTypeImpl
- 
- ghidra.program.model.data.BuiltIn
- 
- ghidra.program.model.data.DynamicDataType
- 
- ghidra.program.model.data.CountedDynamicDataType
 
 
 
 
 
- 
- All Implemented Interfaces:
- BuiltInDataType,- DataType,- Dynamic,- ExtensionPoint,- java.util.EventListener,- javax.swing.event.ChangeListener
 
 public abstract class CountedDynamicDataType extends DynamicDataType A dynamic data type that changes the number of elements it contains based on a count found in header data type. The data type has a header data type which will contain the number of base data types following the header data type. NOTE: This is a special Dynamic data-type which can only appear as a component created by a Dynamic data-type
- 
- 
Nested Class Summary- 
Nested classes/interfaces inherited from interface ghidra.util.classfinder.ExtensionPointExtensionPoint.Exclude, ExtensionPoint.Util
 
- 
 - 
Field Summary- 
Fields inherited from class ghidra.program.model.data.DataTypeImpldefaultSettings
 - 
Fields inherited from class ghidra.program.model.data.AbstractDataTypecategoryPath, dataMgr, name
 - 
Fields inherited from interface ghidra.program.model.data.DataTypeCONFLICT_SUFFIX, DEFAULT, NO_LAST_CHANGE_TIME, NO_SOURCE_SYNC_TIME, VOID
 
- 
 - 
Constructor SummaryConstructors Constructor Description CountedDynamicDataType(java.lang.String name, java.lang.String description, DataType header, DataType baseStruct, long counterOffset, int counterSize, long mask)Constructor for this dynamic data type builder.
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description DataTypeclone(DataTypeManager dtm)Returns a new instance of this DataType with its universalID and SourceArchive identity retained.protected DataTypeComponent[]getAllComponents(MemBuffer buf)java.lang.StringgetDescription()Get a String briefly describing this DataType.java.lang.StringgetMnemonic(Settings settings)Get the mnemonic for this DataType.java.lang.StringgetRepresentation(MemBuffer buf, Settings settings, int length)Get bytes from memory in a printable format for this type.java.lang.ObjectgetValue(MemBuffer buf, Settings settings, int length)Get the data in the form of the appropriate Object for this DataType.- 
Methods inherited from class ghidra.program.model.data.DynamicDataTypecanSpecifyLength, getComponent, getComponentAt, getComponents, getLength, getLength, getNumComponents, getReplacementBaseType, invalidateCache, isDynamicallySized
 - 
Methods inherited from class ghidra.program.model.data.BuiltInaddParent, copy, dataTypeDeleted, dataTypeNameChanged, dataTypeReplaced, dataTypeSizeChanged, dependsOn, getBuiltInSettingsDefinitions, getCTypeDeclaration, getCTypeDeclaration, getCTypeDeclaration, getCTypeDeclaration, getDecompilerDisplayName, getLastChangeTime, getSettingsDefinitions, getUniversalID, isEquivalent, removeParent, setCategoryPath, setName, setNameAndCategory
 - 
Methods inherited from class ghidra.program.model.data.DataTypeImplequals, getAlignment, getDefaultSettings, getLastChangeTimeInSourceArchive, getParents, getPathName, getSourceArchive, getValueClass, hashCode, notifyDeleted, notifyNameChanged, notifyReplaced, notifySizeChanged, replaceWith, setDefaultSettings, setDescription, setLastChangeTime, setLastChangeTimeInSourceArchive, setSourceArchive, stateChanged
 - 
Methods inherited from class ghidra.program.model.data.AbstractDataTypegetCategoryPath, getDataOrganization, getDataTypeManager, getDataTypePath, getDefaultAbbreviatedLabelPrefix, getDefaultLabelPrefix, getDefaultLabelPrefix, getDefaultOffcutLabelPrefix, getDisplayName, getDocs, getName, isDeleted, isNotYetDefined, toString
 - 
Methods inherited from class java.lang.Objectclone, finalize, getClass, notify, notifyAll, wait, wait, wait
 - 
Methods inherited from interface ghidra.program.model.data.BuiltInDataTypegetCTypeDeclaration
 - 
Methods inherited from interface ghidra.program.model.data.DataTypeaddParent, copy, dataTypeDeleted, dataTypeNameChanged, dataTypeReplaced, dataTypeSizeChanged, dependsOn, getAlignment, getCategoryPath, getDataOrganization, getDataTypeManager, getDataTypePath, getDefaultAbbreviatedLabelPrefix, getDefaultLabelPrefix, getDefaultLabelPrefix, getDefaultOffcutLabelPrefix, getDefaultSettings, getDisplayName, getDocs, getLastChangeTime, getLastChangeTimeInSourceArchive, getName, getParents, getPathName, getSettingsDefinitions, getSourceArchive, getUniversalID, getValueClass, isDeleted, isEquivalent, isNotYetDefined, removeParent, replaceWith, setCategoryPath, setDefaultSettings, setDescription, setLastChangeTime, setLastChangeTimeInSourceArchive, setName, setNameAndCategory, setSourceArchive
 
- 
 
- 
- 
- 
Constructor Detail- 
CountedDynamicDataTypepublic CountedDynamicDataType(java.lang.String name, java.lang.String description, DataType header, DataType baseStruct, long counterOffset, int counterSize, long mask)Constructor for this dynamic data type builder.- Parameters:
- name- name of this dynamic data type
- description- description of the data type
- header- header data type that will contain the number of following elements
- baseStruct- base data type for each of the following elements
- counterOffset- offset of the number of following elements from the start of the header
- counterSize- size of the count in bytes
- mask- mask to apply to the count value to get the actual number of following elements.
 
 
- 
 - 
Method Detail- 
clonepublic DataType clone(DataTypeManager dtm) Description copied from interface:DataTypeReturns a new instance of this DataType with its universalID and SourceArchive identity retained. Note: for built-in DataType's, clone and copy should have the same affect.- Parameters:
- dtm- the data-type manager instance whose data-organization should apply.
 
 - 
getAllComponentsprotected DataTypeComponent[] getAllComponents(MemBuffer buf) - Specified by:
- getAllComponentsin class- DynamicDataType
 
 - 
getDescriptionpublic java.lang.String getDescription() Description copied from interface:DataTypeGet a String briefly describing this DataType.- Returns:
- a one-liner describing this DataType.
 
 - 
getValuepublic java.lang.Object getValue(MemBuffer buf, Settings settings, int length) Description copied from interface:DataTypeGet the data in the form of the appropriate Object for this DataType. For instance if the data type is an AddressDT, return an Address object. a Byte, return a Scalar* (maybe this should be a Byte) a Float, return a Float- Parameters:
- buf- the data buffer.
- settings- the settings to use.
- length- the number of bytes to get the value from.
- Returns:
- the data Object.
 
 - 
getRepresentationpublic java.lang.String getRepresentation(MemBuffer buf, Settings settings, int length) Description copied from interface:DataTypeGet bytes from memory in a printable format for this type.- Parameters:
- buf- the data.
- settings- the settings to use for the representation.
- length- the number of bytes to represent.
- Returns:
- the representation of the data in this format, never null.
 
 - 
getMnemonicpublic java.lang.String getMnemonic(Settings settings) Description copied from interface:DataTypeGet the mnemonic for this DataType.- Specified by:
- getMnemonicin interface- DataType
- Overrides:
- getMnemonicin class- AbstractDataType
- Returns:
- the mnemonic for this DataType.
 
 
- 
 
-