Interface ProgramClassTypeInfoManager

All Superinterfaces:
ClassTypeInfoManager, ErrorHandler, TypeInfoManager
All Known Implementing Classes:
ClassTypeInfoManagerDB, ItaniumAbiClassTypeInfoManager, VsClassTypeInfoManager

public interface ProgramClassTypeInfoManager
extends TypeInfoManager, ClassTypeInfoManager
  • Method Details

    • getProgram

      Program getProgram()
      Gets the program
      Returns:
      the program
    • getType

      Gets the ClassTypeInfo at the specified address
      Parameters:
      address - the address of the ClassTypeInfo
      Returns:
      the ClassTypeInfo or null if invalid
      Throws:
      UnresolvedClassTypeInfoException - if this type requires a copy relocation which cannot be resolved.
    • resolve

      Vtable resolve​(Vtable vtable)
      Returns a Vtable that is managed by this ProgramClassTypeInfoManager. If one does not currently exist a new one is created.
      Parameters:
      vtable - the vtable to resolve
      Returns:
      the equivalent vtable managed by this ProgramClassTypeInfoManager
    • getVtable

      Vtable getVtable​(Address address)
      Gets the Vtable at the specified address
      Parameters:
      address - the address of the vtable
      Returns:
      the vtable at the address or null if none is present
    • getTypes

      default Iterable<ClassTypeInfoDB> getTypes()
      Description copied from interface: ClassTypeInfoManager
      Gets an iterable over all the managed ClassTypeInfos
      Specified by:
      getTypes in interface ClassTypeInfoManager
      Returns:
      an iterable over all the managed ClassTypeInfos
    • getTypes

      Iterable<ClassTypeInfoDB> getTypes​(boolean reverse)
      Gets an iterable over all the managed ClassTypeInfos in the specified direction
      Parameters:
      reverse - true if the types should be provided in reverse
      Returns:
      an iterable over all the managed ClassTypeInfos
    • getVtables

      default Iterable<Vtable> getVtables()
      Gets an iterable over all the managed Vtables
      Returns:
      an iterable over all the managed Vtables
    • getVtableIterable

      Iterable<Vtable> getVtableIterable​(boolean reverse)
      Gets an iterable over all the managed Vtables in the specified direction
      Parameters:
      reverse - true if the Vtables should be provided in reverse
      Returns:
      an iterable over all the managed Vtables
    • getVtableCount

      int getVtableCount()
      Gets the number of managed Vtables
      Returns:
      the number of managed Vtables
    • getTypeStream

      default Stream<ClassTypeInfoDB> getTypeStream()
      Description copied from interface: ClassTypeInfoManager
      Gets a stream of all the managed ClassTypeInfos
      Specified by:
      getTypeStream in interface ClassTypeInfoManager
      Returns:
      a stream of all the managed ClassTypeInfos
    • getTypeStream

      Stream<ClassTypeInfoDB> getTypeStream​(boolean reverse)
      Gets a stream of all the managed ClassTypeInfos in the specified direction
      Parameters:
      reverse - true if the types should be provided in reverse
      Returns:
      a stream of all the managed ClassTypeInfos
    • getVtableStream

      Stream<Vtable> getVtableStream()
      Gets a stream of all the managed Vtables
      Returns:
      a stream of all the managed Vtables
    • resolve

      Returns a ClassTypeInfo that is managed by this ClassTypeInfoManager. If the ArchivedClassTypeInfo hasn't already been resolved the type will be created and all required data will be added to the program.
      Parameters:
      type - the type to resolve
      Returns:
      the equivalent type managed by this ClassTypeInfoManager
    • resolve

      Vtable resolve​(ArchivedGnuVtable vtable)
      Returns a Vtable that is managed by this ClassTypeInfoManager. If the ArchivedGnuVtable hasn't already been resolved the vtable will be created and all required data will be added to the program.
      Parameters:
      vtable - the vtable to resolve
      Returns:
      the equivalent vtable managed by this ClassTypeInfoManager
    • getTypeInfo

      TypeInfo getTypeInfo​(Address address, boolean resolve)
      Gets the Type info at the specified address. If the TypeInfo is a ClassTypeInfo it can be resolved if requested.
      Parameters:
      address - the address of the TypeInfo
      resolve - true to resolve the TypeInfo if it happens to be a ClassTypeInfo
      Returns:
      the TypeInfo at the address
    • getType

      ClassTypeInfoDB getType​(UniversalID id)
      Gets the type with a class data type that has the provided id
      Parameters:
      id - the universal id
      Returns:
      the type with the corresponding data type id or null
    • addListener

      default void addListener​(DomainObjectListener listener)
      Specified by:
      addListener in interface ClassTypeInfoManager
    • removeListener

      default void removeListener​(DomainObjectListener listener)
      Specified by:
      removeListener in interface ClassTypeInfoManager