summaryrefslogtreecommitdiff
path: root/src/progress.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/progress.cc')
-rw-r--r--src/progress.cc28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/progress.cc b/src/progress.cc
new file mode 100644
index 0000000..300147d
--- /dev/null
+++ b/src/progress.cc
@@ -0,0 +1,28 @@
+#include "progress.h"
+#include "node.h"
+
+int progress_report_count;
+void (*progress_report_f)(const class AbstractNode*, void*, int);
+void *progress_report_userdata;
+
+void progress_report_prep(AbstractNode *root, void (*f)(const class AbstractNode *node, void *userdata, int mark), void *userdata)
+{
+ progress_report_count = 0;
+ progress_report_f = f;
+ progress_report_userdata = userdata;
+ root->progress_prepare();
+}
+
+void progress_report_fin()
+{
+ progress_report_count = 0;
+ progress_report_f = NULL;
+ progress_report_userdata = NULL;
+}
+
+void progress_update(const AbstractNode *node, int mark)
+{
+ if (progress_report_f)
+ progress_report_f(node, progress_report_userdata, mark);
+}
+
contact: Jan Huwald // Impressum