Ghidra Decompiler Analysis Engine
|
Class for automatically registering extension points to the decompiler. More...
#include <capability.hh>
Public Member Functions | |
virtual void | initialize (void)=0 |
Complete initialization of an extension point. More... | |
Static Public Member Functions | |
static void | initializeAll (void) |
Finish initialization for all extension points. More... | |
Protected Member Functions | |
CapabilityPoint (void) | |
Construct extension capability exactly once. More... | |
Class for automatically registering extension points to the decompiler.
This uses the C++ static initializer feature to automatically discover and register extension point. Code for an extension should provide a class that derives from CapabilityPoint and overrides the initialize() method. Additionally there should be a singleton static instantiation of this extension class. The extensions are accumulated in a list automatically, then the decompiler engine will ensure that the initialize() method is called on each extension, allowing it to complete its integration.
|
protected |
Construct extension capability exactly once.
Constructing the object automatically registers it. For global instances, this happens during static initialization
|
pure virtual |
Complete initialization of an extension point.
This method is implemented by each extension so it can do specialized integration
Implemented in IfaceCapability, ArchitectureCapability, GhidraDecompCapability, and PrintLanguageCapability.
|
static |
Finish initialization for all extension points.
Give all registered capabilities a chance to initialize (after all static initialization has happened)