[gnome-builder] app: add helper to get application startup time



commit a9f748bff7c7e857375edcc618d1124c29ebd2d0
Author: Christian Hergert <christian hergert me>
Date:   Sat May 9 13:31:55 2015 -0700

    app: add helper to get application startup time

 src/app/gb-application-private.h |    1 +
 src/app/gb-application.c         |   11 +++++++++++
 src/app/gb-application.h         |   21 +++++++++++----------
 3 files changed, 23 insertions(+), 10 deletions(-)
---
diff --git a/src/app/gb-application-private.h b/src/app/gb-application-private.h
index f911637..7a77eb3 100644
--- a/src/app/gb-application-private.h
+++ b/src/app/gb-application-private.h
@@ -31,6 +31,7 @@ struct _GbApplication
 {
   GtkApplication       parent_instance;
 
+  GDateTime           *started_at;
   GbKeybindings       *keybindings;
   GbPreferencesWindow *preferences_window;
 };
diff --git a/src/app/gb-application.c b/src/app/gb-application.c
index a44a8b6..e8b24f9 100644
--- a/src/app/gb-application.c
+++ b/src/app/gb-application.c
@@ -470,6 +470,8 @@ gb_application_startup (GApplication *app)
 
   g_assert (GB_IS_APPLICATION (self));
 
+  self->started_at = g_date_time_new_now_utc ();
+
   g_resources_register (gb_get_resource ());
   g_application_set_resource_base_path (app, "/org/gnome/builder");
 
@@ -519,6 +521,7 @@ gb_application_finalize (GObject *object)
 
   IDE_ENTRY;
 
+  g_clear_pointer (&self->started_at, g_date_time_unref);
   g_clear_object (&self->keybindings);
 
   G_OBJECT_CLASS (gb_application_parent_class)->finalize (object);
@@ -575,3 +578,11 @@ gb_application_init (GbApplication *app)
 
   IDE_EXIT;
 }
+
+GDateTime *
+gb_application_get_started_at (GbApplication *self)
+{
+  g_return_val_if_fail (GB_IS_APPLICATION (self), NULL);
+
+  return self->started_at;
+}
diff --git a/src/app/gb-application.h b/src/app/gb-application.h
index b4557bd..c6bb8f5 100644
--- a/src/app/gb-application.h
+++ b/src/app/gb-application.h
@@ -27,16 +27,17 @@ G_BEGIN_DECLS
 
 G_DECLARE_FINAL_TYPE (GbApplication, gb_application, GB, APPLICATION, GtkApplication)
 
-void     gb_application_open_project_async   (GbApplication        *self,
-                                              GFile                *file,
-                                              GPtrArray            *additional_files,
-                                              GCancellable         *cancellable,
-                                              GAsyncReadyCallback   callback,
-                                              gpointer              user_data);
-gboolean gb_application_open_project_finish  (GbApplication        *self,
-                                              GAsyncResult         *result,
-                                              GError              **error);
-void     gb_application_show_projects_window (GbApplication        *self);
+GDateTime *gb_application_get_started_at       (GbApplication        *self);
+void       gb_application_open_project_async   (GbApplication        *self,
+                                                GFile                *file,
+                                                GPtrArray            *additional_files,
+                                                GCancellable         *cancellable,
+                                                GAsyncReadyCallback   callback,
+                                                gpointer              user_data);
+gboolean   gb_application_open_project_finish  (GbApplication        *self,
+                                                GAsyncResult         *result,
+                                                GError              **error);
+void       gb_application_show_projects_window (GbApplication        *self);
 
 G_END_DECLS
 


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