From a7eaa72caa4a5e3e7cd7ea7c32236c93b06d1442 Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Thu, 30 Jun 2016 17:15:19 -0400 Subject: Add API for analysis progress --- python/__init__.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'python') diff --git a/python/__init__.py b/python/__init__.py index 3d2123b3..e07bd7c5 100644 --- a/python/__init__.py +++ b/python/__init__.py @@ -650,6 +650,22 @@ class AnalysisCompletionEvent(object): self.callback = self._empty_callback core.BNCancelAnalysisCompletionEvent(self.handle) +class AnalysisProgress(object): + def __init__(self, state, count, total): + self.state = state + self.count = count + self.total = total + + def __str__(self): + if self.state == core.DisassembleState: + return "Disassembling (%d/%d)" % (self.count, self.total) + if self.state == core.AnalyzeState: + return "Analyzing (%d/%d)" % (self.count, self.total) + return "Idle" + + def __repr__(self): + return "" % str(self) + class BinaryView(object): name = None """Binary View name""" @@ -928,6 +944,12 @@ class BinaryView(object): def saved(self, value): self.file.saved = value + @property + def analysis_progress(self): + """Status of current analysis (read-only)""" + result = core.BNGetAnalysisProgress(self.handle) + return AnalysisProgress(result.state, result.count, result.total) + def __len__(self): return int(core.BNGetViewLength(self.handle)) -- cgit v1.3.1