MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / __init__

Method __init__

python/workflow.py:157–171  ·  view source on GitHub ↗
(self, configuration: str = "", handle: Optional[core.BNActivityHandle] = None, action: Optional[Callable[[Any], None]] = None, eligibility: Optional[Callable[[Any], bool]] = None)

Source from the content-addressed store, hash-verified

155 _eligibility_callbacks = {}
156
157 def __init__(self, configuration: str = "", handle: Optional[core.BNActivityHandle] = None, action: Optional[Callable[[Any], None]] = None, eligibility: Optional[Callable[[Any], bool]] = None):
158 if handle is None:
159 action_callback = ctypes.CFUNCTYPE(None, ctypes.c_void_p, ctypes.POINTER(core.BNAnalysisContext))(lambda ctxt, ac: self._action(ac))
160 if eligibility:
161 eligibility_callback = ctypes.CFUNCTYPE(ctypes.c_bool, ctypes.c_void_p, ctypes.POINTER(core.BNActivity), ctypes.POINTER(core.BNAnalysisContext))(lambda ctxt, act, ac: eligibility(act, ac))
162 _handle = core.BNCreateActivityWithEligibility(configuration, None, action_callback, eligibility_callback)
163 self.__class__._eligibility_callbacks[len(self.__class__._eligibility_callbacks)] = eligibility_callback
164 else:
165 _handle = core.BNCreateActivity(configuration, None, action_callback)
166 self.action = action
167 self.__class__._action_callbacks[len(self.__class__._action_callbacks)] = action_callback
168 else:
169 _handle = handle
170 assert _handle is not None, "Activity instantiation failed"
171 self.handle = _handle
172
173 def _action(self, ac: Any):
174 try:

Callers 1

__init__Method · 0.45

Calls 1

_actionMethod · 0.95

Tested by

no test coverage detected