[gtk/constraint-grid-2] solver: Add private statistics api



commit e2cd7c57032701b8c1fbeea0f5b3c0a298c87a4c
Author: Matthias Clasen <mclasen redhat com>
Date:   Sat Jun 29 17:38:36 2019 +0000

    solver: Add private statistics api
    
    No point in keeping these counters without
    a way to show them.

 gtk/gtkconstraintsolver.c        | 17 +++++++++++++++++
 gtk/gtkconstraintsolverprivate.h |  3 +++
 2 files changed, 20 insertions(+)
---
diff --git a/gtk/gtkconstraintsolver.c b/gtk/gtkconstraintsolver.c
index da778d2dd9..e866040705 100644
--- a/gtk/gtkconstraintsolver.c
+++ b/gtk/gtkconstraintsolver.c
@@ -1483,6 +1483,8 @@ gtk_constraint_solver_create_variable (GtkConstraintSolver *self,
 {
   GtkConstraintVariable *res;
 
+  self->var_counter++;
+
   res = gtk_constraint_variable_new (name);
   gtk_constraint_variable_set_prefix (res, prefix);
   gtk_constraint_variable_set_value (res, value);
@@ -2209,3 +2211,18 @@ gtk_constraint_solver_to_string (GtkConstraintSolver *solver)
 
   return g_string_free (buf, FALSE);
 }
+
+char *
+gtk_constraint_solver_statistics (GtkConstraintSolver *solver)
+{
+  GString *buf = g_string_new (NULL);
+
+  g_string_append_printf (buf, "Variables: %d\n", solver->var_counter);
+  g_string_append_printf (buf, "Slack vars: %d\n", solver->slack_counter);
+  g_string_append_printf (buf, "Artificial vars: %d\n", solver->artificial_counter);
+  g_string_append_printf (buf, "Dummy vars: %d\n", solver->dummy_counter);
+  g_string_append_printf (buf, "Stay vars: %d\n", g_hash_table_size (solver->stay_var_map));
+  g_string_append_printf (buf, "Optimize count: %d\n", solver->optimize_count);
+
+  return g_string_free (buf, FALSE);
+}
diff --git a/gtk/gtkconstraintsolverprivate.h b/gtk/gtkconstraintsolverprivate.h
index 32f3debd51..c383b0f95d 100644
--- a/gtk/gtkconstraintsolverprivate.h
+++ b/gtk/gtkconstraintsolverprivate.h
@@ -162,4 +162,7 @@ gtk_constraint_solver_clear (GtkConstraintSolver *solver);
 char *
 gtk_constraint_solver_to_string (GtkConstraintSolver *solver);
 
+char *
+gtk_constraint_solver_statistics (GtkConstraintSolver *solver);
+
 G_END_DECLS


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]