summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancisco Redondo Marchena <francisco.marchena@codethink.co.uk>2012-08-09 11:31:02 +0100
committerJonathan Maw <jonathan.maw@codethink.co.uk>2012-08-10 10:10:32 +0100
commit129fb0a94d3134e211b3441f5ddc0c682481534a (patch)
tree11bfbc3de20e1e5ae85d70409552ca35871d623f
parentd7116927d002bf7a0a6a21997117c36418aa56f3 (diff)
downloadnode-startup-controller-129fb0a94d3134e211b3441f5ddc0c682481534a.tar.gz
Expand description of the LUCStarter
Includes a step-by-step description of how to start the Last User Context.
-rw-r--r--node-startup-controller/luc-starter.c54
1 files changed, 39 insertions, 15 deletions
diff --git a/node-startup-controller/luc-starter.c b/node-startup-controller/luc-starter.c
index 6e67f10..8032dc7 100644
--- a/node-startup-controller/luc-starter.c
+++ b/node-startup-controller/luc-starter.c
@@ -28,6 +28,45 @@
+/**
+ * SECTION: luc-starter
+ * @title: LUCStarter
+ * @short_description: Starts the applications registered with the Last User Context.
+ * @stability: Internal
+ *
+ * The #LUCStarter is a component of the #NodeStartupControllerApplication which manages
+ * the start of the Last User Context (LUC) applications.
+ *
+ * When the #NodeStartupControllerApplication starts, it asks the #LUCStarter to start
+ * the LUC applications. To start the LUC applications, the #LUCStarter will do the
+ * following in order:
+ *
+ * 1. Checks with the Node State Manager (NSM) if starting the LUC applications
+ * is required. If it is not required, it notifies the groups of current applications
+ * that the start of the LUC has been processed, which never happens because starting
+ * the LUC is not required.
+ *
+ * If starting the LUC is required:
+ *
+ * 2. Removes the current user context.
+ *
+ * 3. Reads the LUC using the node_startup_controller_service_read_luc().
+ *
+ * 4. Starts the LUC applications asynchronously and in prioritised groups. The group of
+ * applications, which belong to the most prioritised LUC type, start first and then
+ * the next group of applications are started in the order of the prioritized types
+ * set at build-time, then in numerical order.
+ * When an application is started, the #LUCStarter keeps it in a table, associates
+ * this application with its #GCancellable (so it is possible to cancel each
+ * respective application if the start of the LUC is cancelled), and start the service
+ * calling the start method to #JobManager and passing its #GCancellable.
+ *
+ * 5. Notifies the groups of applications that the start of the LUC has been processed.
+ *
+ */
+
+
+
DLT_IMPORT_CONTEXT (controller_context);
@@ -81,21 +120,6 @@ static void luc_starter_start_groups_for_real (LUCStarter *starter);
-/**
- * SECTION: luc-starter
- * @title: LUCStarter
- * @short_description: Starts the applications registered with the Last User Context
- * @stability: Internal
- *
- * The #LUCStarter starts the Last User Context (LUC) applications. The LUC applications
- * are started asynchronously and in groups (one group per LUC type).
- * The #LUCStarter checks with Node State Manager (NSM) if starting the LUC applications
- * is required. If it is required, the #LUCStarter will start the LUC applications.
- * Notice that it is possible to cancel the start of the LUC applications.
- */
-
-
-
struct _LUCStarterClass
{
GObjectClass __parent__;