Binary Ninja API C++: TypeBrowserModel Class Reference

Signals

void updatesAboutToHappen () void updateComplete (bool didAnyHappen)

Public Member Functions

 TypeBrowserModel (BinaryViewRef data, QObject *parent) virtual ~TypeBrowserModel () BinaryViewRef getData () std::shared_ptr< TypeBrowserTreeNodegetRootNode () std::vector< std::string > containerIds () const std::vector< std::shared_ptr< TypeContainerTreeNode > > containerNodes () const std::string nameForContainerId (const std::string &id) const std::optional< std::reference_wrapper< BinaryNinja::TypeContainer > > containerForContainerId (const std::string &id) std::optional< std::reference_wrapper< const BinaryNinja::TypeContainer > > containerForContainerId (const std::string &id) const std::optional< BinaryViewRefviewForContainerId (const std::string &id) const std::optional< TypeArchiveRefarchiveForContainerId (const std::string &id) const std::optional< std::string > archiveIdForContainerId (const std::string &id) const std::optional< TypeLibraryReflibraryForContainerId (const std::string &id) const std::optional< DebugInfoRefdebugInfoForContainerId (const std::string &id) const std::optional< PlatformRefplatformForContainerId (const std::string &id) const void updateFonts () void runAfterUpdate (std::function< void()> callback) int columnCount (const QModelIndex &parent=QModelIndex()) const override int rowCount (const QModelIndex &parent=QModelIndex()) const override QVariant headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override QModelIndex parent (const QModelIndex &child) const override QModelIndex index (int row, int column, const QModelIndex &parent=QModelIndex()) const override QVariant data (const QModelIndex &index, int role=Qt::DisplayRole) const override std::shared_ptr< TypeBrowserTreeNodenodeForIndex (const QModelIndex &index) const QModelIndex indexForNode (std::shared_ptr< TypeBrowserTreeNode > node, int column=0) const bool filter (const QModelIndex &index, const std::string &filter, TypeBrowserFilterMode mode) const bool lessThan (const QModelIndex &left, const QModelIndex &right) const void OnTypeDefined (BinaryNinja::BinaryView *data, const BinaryNinja::QualifiedName &name, BinaryNinja::Type *type) override void OnTypeUndefined (BinaryNinja::BinaryView *data, const BinaryNinja::QualifiedName &name, BinaryNinja::Type *type) override void OnTypeReferenceChanged (BinaryNinja::BinaryView *data, const BinaryNinja::QualifiedName &name, BinaryNinja::Type *type) override void OnTypeFieldReferenceChanged (BinaryNinja::BinaryView *data, const BinaryNinja::QualifiedName &name, uint64_t offset) override void OnTypeAdded (TypeArchiveRef archive, const std::string &id, TypeRef definition) override  Called when a type is added to the archive.
void OnTypeUpdated (TypeArchiveRef archive, const std::string &id, TypeRef oldDefinition, TypeRef newDefinition) override  Called when a type in the archive is updated to a new definition.
void OnTypeRenamed (TypeArchiveRef archive, const std::string &id, const BinaryNinja::QualifiedName &oldName, const BinaryNinja::QualifiedName &newName) override  Called when a type in the archive is renamed.
void OnTypeDeleted (TypeArchiveRef archive, const std::string &id, TypeRef definition) override  Called when a type in the archive is deleted from the archive.
void OnTypeArchiveAttached (BinaryNinja::BinaryView *data, const std::string &id, const std::string &path) override  This notification is posted whenever a Type Archive is attached to a Binary View.
void OnTypeArchiveDetached (BinaryNinja::BinaryView *data, const std::string &id, const std::string &path) override  This notification is posted whenever a Type Archive is detached to a Binary View.
void OnTypeArchiveConnected (BinaryNinja::BinaryView *data, BinaryNinja::TypeArchive *archive) override  This notification is posted whenever a previously disconnected Type Archive attached to the Binary View is connected.
void OnTypeArchiveDisconnected (BinaryNinja::BinaryView *data, BinaryNinja::TypeArchive *archive) override  This notification is posted whenever a previously connected Type Archive attached to the Binary View is disconnected.
Public Member Functions inherited from BinaryNinja::BinaryDataNotification  BinaryDataNotification ()  BinaryDataNotification (NotificationTypes notifications) virtual ~BinaryDataNotification () BNBinaryDataNotificationGetCallbacks () virtual uint64_t OnNotificationBarrier (BinaryView *view) virtual void OnBinaryDataWritten (BinaryView *view, uint64_t offset, size_t len) virtual void OnBinaryDataInserted (BinaryView *view, uint64_t offset, size_t len) virtual void OnBinaryDataRemoved (BinaryView *view, uint64_t offset, uint64_t len) virtual void OnAnalysisFunctionAdded (BinaryView *view, Function *func) virtual void OnAnalysisFunctionRemoved (BinaryView *view, Function *func) virtual void OnAnalysisFunctionUpdated (BinaryView *view, Function *func) virtual void OnAnalysisFunctionUpdateRequested (BinaryView *view, Function *func) virtual void OnDataVariableAdded (BinaryView *view, const DataVariable &var) virtual void OnDataVariableRemoved (BinaryView *view, const DataVariable &var) virtual void OnDataVariableUpdated (BinaryView *view, const DataVariable &var) virtual void OnDataMetadataUpdated (BinaryView *view, uint64_t offset) virtual void OnTagTypeUpdated (BinaryView *view, Ref< TagType > tagTypeRef) virtual void OnTagAdded (BinaryView *view, const TagReference &tagRef) virtual void OnTagRemoved (BinaryView *view, const TagReference &tagRef) virtual void OnTagUpdated (BinaryView *view, const TagReference &tagRef) virtual void OnSymbolAdded (BinaryView *view, Symbol *sym) virtual void OnSymbolRemoved (BinaryView *view, Symbol *sym) virtual void OnSymbolUpdated (BinaryView *view, Symbol *sym) virtual void OnStringFound (BinaryView *data, BNStringType type, uint64_t offset, size_t len) virtual void OnStringRemoved (BinaryView *data, BNStringType type, uint64_t offset, size_t len) virtual void OnDerivedStringFound (BinaryView *data, const DerivedString &str) virtual void OnDerivedStringRemoved (BinaryView *data, const DerivedString &str) virtual void OnSegmentAdded (BinaryView *data, Segment *segment) virtual void OnSegmentRemoved (BinaryView *data, Segment *segment) virtual void OnSegmentUpdated (BinaryView *data, Segment *segment) virtual void OnSectionAdded (BinaryView *data, Section *section) virtual void OnSectionRemoved (BinaryView *data, Section *section) virtual void OnSectionUpdated (BinaryView *data, Section *section) virtual void OnComponentNameUpdated (BinaryView *data, std::string &previousName, Component *component)  This notification is posted after the display name for a component is updated.
virtual void OnComponentAdded (BinaryView *data, Component *component)  This notification is posted after a Component is added to the tree.
virtual void OnComponentRemoved (BinaryView *data, Component *formerParent, Component *component)  This notification is posted after a Component is removed from the tree.
virtual void OnComponentMoved (BinaryView *data, Component *formerParent, Component *newParent, Component *component)  This notification is posted whenever a component is moved from one component to another.
virtual void OnComponentFunctionAdded (BinaryView *data, Component *component, Function *function)  This notification is posted whenever a Function is added to a Component.
virtual void OnComponentFunctionRemoved (BinaryView *data, Component *component, Function *function)  This notification is posted whenever a Function is removed from a Component.
virtual void OnComponentDataVariableAdded (BinaryView *data, Component *component, const DataVariable &var)  This notification is posted whenever a DataVariable is added to a Component.
virtual void OnComponentDataVariableRemoved (BinaryView *data, Component *component, const DataVariable &var)  This notification is posted whenever a DataVariable is removed from a Component.
virtual void OnExternalLibraryAdded (BinaryView *data, ExternalLibrary *library) virtual void OnExternalLibraryRemoved (BinaryView *data, ExternalLibrary *library) virtual void OnExternalLibraryUpdated (BinaryView *data, ExternalLibrary *library) virtual void OnExternalLocationAdded (BinaryView *data, ExternalLocation *location) virtual void OnExternalLocationRemoved (BinaryView *data, ExternalLocation *location) virtual void OnExternalLocationUpdated (BinaryView *data, ExternalLocation *location) virtual void OnUndoEntryAdded (BinaryView *data, UndoEntry *entry)  This notification is posted whenever an entry is added to undo history.
virtual void OnUndoEntryTaken (BinaryView *data, UndoEntry *entry)  This notification is posted whenever an action is undone.
virtual void OnRedoEntryTaken (BinaryView *data, UndoEntry *entry)  This notification is posted whenever an action is redone.
virtual void OnRebased (BinaryView *oldView, BinaryView *newView)  This notification is posted whenever a binary view is rebased.
Public Member Functions inherited from BinaryNinja::TypeArchiveNotification  TypeArchiveNotification () virtual ~TypeArchiveNotification ()=default BNTypeArchiveNotificationGetCallbacks ()

Additional Inherited Members

Public Types inherited from BinaryNinja::BinaryDataNotification enum  NotificationType : uint64_t {
  NotificationBarrier = 1ULL << 0 , DataWritten = 1ULL << 1 , DataInserted = 1ULL << 2 , DataRemoved = 1ULL << 3 ,
  FunctionAdded = 1ULL << 4 , FunctionRemoved = 1ULL << 5 , FunctionUpdated = 1ULL << 6 , FunctionUpdateRequested = 1ULL << 7 ,
  DataVariableAdded = 1ULL << 8 , DataVariableRemoved = 1ULL << 9 , DataVariableUpdated = 1ULL << 10 , DataMetadataUpdated = 1ULL << 11 ,
  TagTypeUpdated = 1ULL << 12 , TagAdded = 1ULL << 13 , TagRemoved = 1ULL << 14 , TagUpdated = 1ULL << 15 ,
  SymbolAdded = 1ULL << 16 , SymbolRemoved = 1ULL << 17 , SymbolUpdated = 1ULL << 18 , StringFound = 1ULL << 19 ,
  StringRemoved = 1ULL << 20 , TypeDefined = 1ULL << 21 , TypeUndefined = 1ULL << 22 , TypeReferenceChanged = 1ULL << 23 ,
  TypeFieldReferenceChanged = 1ULL << 24 , SegmentAdded = 1ULL << 25 , SegmentRemoved = 1ULL << 26 , SegmentUpdated = 1ULL << 27 ,
  SectionAdded = 1ULL << 28 , SectionRemoved = 1ULL << 29 , SectionUpdated = 1ULL << 30 , ComponentNameUpdated = 1ULL << 31 ,
  ComponentAdded = 1ULL << 32 , ComponentRemoved = 1ULL << 33 , ComponentMoved = 1ULL << 34 , ComponentFunctionAdded = 1ULL << 35 ,
  ComponentFunctionRemoved = 1ULL << 36 , ComponentDataVariableAdded = 1ULL << 37 , ComponentDataVariableRemoved = 1ULL << 38 , ExternalLibraryAdded = 1ULL << 39 ,
  ExternalLibraryRemoved = 1ULL << 40 , ExternalLibraryUpdated = 1ULL << 41 , ExternalLocationAdded = 1ULL << 42 , ExternalLocationRemoved = 1ULL << 43 ,
  ExternalLocationUpdated = 1ULL << 44 , TypeArchiveAttached = 1ULL << 45 , TypeArchiveDetached = 1ULL << 46 , TypeArchiveConnected = 1ULL << 47 ,
  TypeArchiveDisconnected = 1ULL << 48 , UndoEntryAdded = 1ULL << 49 , UndoEntryTaken = 1ULL << 50 , RedoEntryTaken = 1ULL << 51 ,
  Rebased = 1ULL << 52 , DerivedStringFound = 1ULL << 53 , DerivedStringRemoved = 1ULL << 54 , BinaryDataUpdates = DataWritten | DataInserted | DataRemoved ,
  FunctionLifetime = FunctionAdded | FunctionRemoved , FunctionUpdates = FunctionLifetime | FunctionUpdated , DataVariableLifetime = DataVariableAdded | DataVariableRemoved , DataVariableUpdates = DataVariableLifetime | DataVariableUpdated ,
  TagLifetime = TagAdded | TagRemoved , TagUpdates = TagLifetime | TagUpdated , SymbolLifetime = SymbolAdded | SymbolRemoved , SymbolUpdates = SymbolLifetime | SymbolUpdated ,
  StringUpdates = StringFound | StringRemoved | DerivedStringFound | DerivedStringRemoved , TypeLifetime = TypeDefined | TypeUndefined , TypeUpdates = TypeLifetime | TypeReferenceChanged | TypeFieldReferenceChanged , SegmentLifetime = SegmentAdded | SegmentRemoved ,
  SegmentUpdates = SegmentLifetime | SegmentUpdated , SectionLifetime = SectionAdded | SectionRemoved , SectionUpdates = SectionLifetime | SectionUpdated , ComponentUpdates = ComponentNameUpdated | ComponentAdded | ComponentRemoved | ComponentMoved | ComponentFunctionAdded | ComponentFunctionRemoved | ComponentDataVariableAdded | ComponentDataVariableRemoved ,
  ExternalLibraryLifetime = ExternalLibraryAdded | ExternalLibraryRemoved , ExternalLibraryUpdates = ExternalLibraryLifetime | ExternalLibraryUpdated , ExternalLocationLifetime = ExternalLocationAdded | ExternalLocationRemoved , ExternalLocationUpdates = ExternalLocationLifetime | ExternalLocationUpdated ,
  TypeArchiveUpdates = TypeArchiveAttached | TypeArchiveDetached | TypeArchiveConnected | TypeArchiveDisconnected , UndoUpdates = UndoEntryAdded | UndoEntryTaken | RedoEntryTaken
} using NotificationTypes = uint64_t