diff options
Diffstat (limited to 'doc/afm-system-daemon.html')
-rw-r--r-- | doc/afm-system-daemon.html | 260 |
1 files changed, 85 insertions, 175 deletions
diff --git a/doc/afm-system-daemon.html b/doc/afm-system-daemon.html index 4569bc2..436a985 100644 --- a/doc/afm-system-daemon.html +++ b/doc/afm-system-daemon.html @@ -1,63 +1,53 @@ +<!DOCTYPE html> <html> <head> - <link rel="stylesheet" type="text/css" href="doc.css"> - <meta charset="UTF-8"> + <meta charset="utf-8"> + <meta name="generator" content="pandoc"> + <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> + <meta name="author" content="José Bollo"> + <meta name="author" content="Fulup Ar Foll"> + <title>The afm-system-daemon</title> + <style type="text/css">code{white-space: pre;}</style> + <!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> + <![endif]--> + <link rel="stylesheet" href="doc.css"> </head> <body> -<a name="The.afm-system-daemon"></a> -<h1>The afm-system-daemon</h1> - +<header> +<h1 class="title">The afm-system-daemon</h1> +<h2 class="author">José Bollo</h2> +<h2 class="author">Fulup Ar Foll</h2> +<h3 class="date">30 mai 2016</h3> +</header> +<nav id="TOC"> +<ul> +<li><a href="#the-afm-system-daemon">The afm-system-daemon</a><ul> +<li><a href="#foreword">Foreword</a></li> +<li><a href="#introduction">Introduction</a></li> +<li><a href="#starting-afm-system-daemon">Starting <strong>afm-system-daemon</strong></a></li> +<li><a href="#the-d-bus-interface">The D-Bus interface</a><ul> +<li><a href="#overview-of-the-dbus-interface">Overview of the dbus interface</a></li> +<li><a href="#the-protocol-over-d-bus">The protocol over D-Bus</a></li> +</ul></li> +</ul></li> +</ul> +</nav> +<h1 id="the-afm-system-daemon">The afm-system-daemon</h1> <pre><code>version: 1 Date: 30 mai 2016 -Author: José Bollo -</code></pre> - -<p><ul> - <li><a href="#The.afm-system-daemon">The afm-system-daemon</a> - <ul> - <li><a href="#Foreword">Foreword</a></li> - <li><a href="#Introduction">Introduction</a></li> - <li><a href="#Starting..strong.afm-system-daemon..strong.">Starting <strong>afm-system-daemon</strong></a></li> - <li><a href="#The.D-Bus.interface">The D-Bus interface</a> - <ul> - <li><a href="#Overview.of.the.dbus.interface">Overview of the dbus interface</a></li> - <li><a href="#The.protocol.over.D-Bus">The protocol over D-Bus</a> - <ul> - <li><a href="#Method.org.AGL.afm.system.install">Method org.AGL.afm.system.install</a></li> - <li><a href="#Method.org.AGL.afm.system.uninstall">Method org.AGL.afm.system.uninstall</a></li> - </ul> - </li> - </ul> - </li> - </ul> - </li> -</ul></p> - -<a name="Foreword"></a> -<h2>Foreword</h2> - -<p>This document describes application framework system daemon fundamentals. -FCF (Fully Conform to Specification) implementation is still under development. -It may happen that current implementation somehow diverges with specifications.</p> - -<a name="Introduction"></a> -<h2>Introduction</h2> - -<p>The daemon <strong>afm-system-daemon</strong> is in charge of installing -applications on AGL system. Its main tasks are:</p> - +Author: José Bollo</code></pre> +<p>TABLE-OF-CONTENT-HERE</p> +<h2 id="foreword">Foreword</h2> +<p>This document describes application framework system daemon fundamentals. FCF (Fully Conform to Specification) implementation is still under development. It may happen that current implementation somehow diverges with specifications.</p> +<h2 id="introduction">Introduction</h2> +<p>The daemon <strong>afm-system-daemon</strong> is in charge of installing applications on AGL system. Its main tasks are:</p> <ul> -<li><p>installs applications and setup security framework -for newly installed application.</p></li> +<li><p>installs applications and setup security framework for newly installed application.</p></li> <li><p>uninstall applications</p></li> </ul> - - -<p>The <strong>afm-system-daemon</strong> takes its orders from system -instance of D-Bus.</p> - +<p>The <strong>afm-system-daemon</strong> takes its orders from system instance of D-Bus.</p> <p>The figure below summarizes the situation of <strong>afm-system-daemon</strong> in the system.</p> - <pre><code>+------------------------------------------------------------+ | User | | | @@ -79,169 +69,89 @@ instance of D-Bus.</p> | +--------------------+ +-----------------------+ | | | | System | -+------------------------------------------------------------+ -</code></pre> - -<a name="Starting..strong.afm-system-daemon..strong."></a> -<h2>Starting <strong>afm-system-daemon</strong></h2> - -<p><strong>afm-system-daemon</strong> is launched as a <strong>systemd</strong> service -attached to system. Normally, the service file is -located at /lib/systemd/system/afm-system-daemon.service.</p> - ++------------------------------------------------------------+</code></pre> +<h2 id="starting-afm-system-daemon">Starting <strong>afm-system-daemon</strong></h2> +<p><strong>afm-system-daemon</strong> is launched as a <strong>systemd</strong> service attached to system. Normally, the service file is located at /lib/systemd/system/afm-system-daemon.service.</p> <p>The options for launching <strong>afm-system-daemon</strong> are:</p> - <pre><code>-r --root directory - Set the root application directory. + Set the root application directory. - Note that the default root directory is defined - to be /usr/share/afm/applications (may change). + Note that the default root directory is defined + to be /usr/share/afm/applications (may change). -d --daemon - Daemonizes the process. It is not needed by sytemd. + Daemonizes the process. It is not needed by sytemd. -q --quiet - Reduces the verbosity (can be repeated). + Reduces the verbosity (can be repeated). -v --verbose - Increases the verbosity (can be repeated). + Increases the verbosity (can be repeated). -h --help - Prints a short help. -</code></pre> - -<a name="The.D-Bus.interface"></a> -<h2>The D-Bus interface</h2> - -<a name="Overview.of.the.dbus.interface"></a> -<h3>Overview of the dbus interface</h3> - -<p><strong><em>afm-system-daemon</em></strong> takes its orders from the session instance -of D-Bus. The use of D-Bus is great because it allows to implement -discovery and signaling.</p> - -<p>The <strong>afm-system-daemon</strong> is listening with the destination name -<strong><em>org.AGL.afm.system</em></strong> at the object of path <strong><em>/org/AGL/afm/system</em></strong> -on the interface <strong><em>org.AGL.afm.system</em></strong> for the below detailed -members <strong><em>install</em></strong> and <strong><em>uninstall</em></strong>.</p> - -<p>D-Bus is mainly used for signaling and discovery. Its optimized -typed protocol is not used except for transmitting only one string -in both directions.</p> - -<p>The client and the service are using JSON serialization to -exchange data.</p> - + Prints a short help.</code></pre> +<h2 id="the-d-bus-interface">The D-Bus interface</h2> +<h3 id="overview-of-the-dbus-interface">Overview of the dbus interface</h3> +<p><strong><em>afm-system-daemon</em></strong> takes its orders from the session instance of D-Bus. The use of D-Bus is great because it allows to implement discovery and signaling.</p> +<p>The <strong>afm-system-daemon</strong> is listening with the destination name <strong><em>org.AGL.afm.system</em></strong> at the object of path <strong><em>/org/AGL/afm/system</em></strong> on the interface <strong><em>org.AGL.afm.system</em></strong> for the below detailed members <strong><em>install</em></strong> and <strong><em>uninstall</em></strong>.</p> +<p>D-Bus is mainly used for signaling and discovery. Its optimized typed protocol is not used except for transmitting only one string in both directions.</p> +<p>The client and the service are using JSON serialization to exchange data.</p> <p>The D-Bus interface is defined by:</p> - <ul> <li><p>DESTINATION: <strong>org.AGL.afm.system</strong></p></li> <li><p>PATH: <strong>/org/AGL/afm/system</strong></p></li> <li><p>INTERFACE: <strong>org.AGL.afm.system</strong></p></li> </ul> - - -<p>The signature of any member of the interface is <strong><em>string -> string</em></strong> -for <strong><em>JSON -> JSON</em></strong>.</p> - -<p>This is the normal case. In case of error, the current implementation -returns a dbus error that is a string.</p> - -<p>Here is an example using <em>dbus-send</em> to query data on -installed applications.</p> - +<p>The signature of any member of the interface is <strong><em>string -> string</em></strong> for <strong><em>JSON -> JSON</em></strong>.</p> +<p>This is the normal case. In case of error, the current implementation returns a dbus error that is a string.</p> +<p>Here is an example using <em>dbus-send</em> to query data on installed applications.</p> <pre><code>dbus-send --session --print-reply \ ---dest=org.AGL.afm.system \ -/org/AGL/afm/system \ -org.AGL.afm.system.install 'string:"/tmp/appli.wgt"' -</code></pre> - -<a name="The.protocol.over.D-Bus"></a> -<h3>The protocol over D-Bus</h3> - + --dest=org.AGL.afm.system \ + /org/AGL/afm/system \ + org.AGL.afm.system.install 'string:"/tmp/appli.wgt"'</code></pre> +<h3 id="the-protocol-over-d-bus">The protocol over D-Bus</h3> <hr /> - -<a name="Method.org.AGL.afm.system.install"></a> -<h4>Method org.AGL.afm.system.install</h4> - +<h4 id="method-org.agl.afm.system.install">Method org.AGL.afm.system.install</h4> <p><strong>Description</strong>: Install an application from a widget file.</p> - -<p>When an application with the same <em>id</em> and <em>version</em> already exists. Outside of -using <em>force=true</em> the application is not reinstalled.</p> - -<p>Applications are installed the subdirectories of applications common directory. -If <em>root</em> is specified, the application is installed under the -sub-directories of the <em>root</em> defined.</p> - -<p>Note that this methods is a simple accessor method of -<strong><em>org.AGL.afm.system.install</em></strong> from <strong><em>afm-system-daemon</em></strong>.</p> - -<p>After the installation and before returning to the sender, -<strong><em>afm-system-daemon</em></strong> sends a signal <strong><em>org.AGL.afm.system.changed</em></strong>.</p> - -<p><strong>Input</strong>: The <em>path</em> of the widget file to install and, optionally, -a flag to <em>force</em> reinstallation, and, optionally, a <em>root</em> directory.</p> - +<p>When an application with the same <em>id</em> and <em>version</em> already exists. Outside of using <em>force=true</em> the application is not reinstalled.</p> +<p>Applications are installed the subdirectories of applications common directory. If <em>root</em> is specified, the application is installed under the sub-directories of the <em>root</em> defined.</p> +<p>Note that this methods is a simple accessor method of <strong><em>org.AGL.afm.system.install</em></strong> from <strong><em>afm-system-daemon</em></strong>.</p> +<p>After the installation and before returning to the sender, <strong><em>afm-system-daemon</em></strong> sends a signal <strong><em>org.AGL.afm.system.changed</em></strong>.</p> +<p><strong>Input</strong>: The <em>path</em> of the widget file to install and, optionally, a flag to <em>force</em> reinstallation, and, optionally, a <em>root</em> directory.</p> <p>Either just a string being the absolute path of the widget file:</p> - -<pre><code>"/a/path/driving/to/the/widget" -</code></pre> - +<pre><code>"/a/path/driving/to/the/widget"</code></pre> <p>Or an object:</p> - <pre><code>{ - "wgt": "/a/path/to/the/widget", - "force": false, - "root": "/a/path/to/the/root" -} -</code></pre> - -<p>“wgt” and “root” must be absolute paths.</p> - -<p><strong>output</strong>: An object with the field “added” being the string for -the id of the added application.</p> - -<pre><code>{"added":"appli@x.y"} -</code></pre> - + "wgt": "/a/path/to/the/widget", + "force": false, + "root": "/a/path/to/the/root" +}</code></pre> +<p>"wgt" and "root" must be absolute paths.</p> +<p><strong>output</strong>: An object with the field "added" being the string for the id of the added application.</p> +<pre><code>{"added":"appli@x.y"}</code></pre> <hr /> - -<a name="Method.org.AGL.afm.system.uninstall"></a> -<h4>Method org.AGL.afm.system.uninstall</h4> - +<h4 id="method-org.agl.afm.system.uninstall">Method org.AGL.afm.system.uninstall</h4> <p><strong>Description</strong>: Uninstall an application from its id.</p> - -<p>Note that this methods is a simple method accessor of -<strong><em>org.AGL.afm.system.uninstall</em></strong> from <strong><em>afm-system-daemon</em></strong>.</p> - -<p>After the uninstallation and before returning to the sender, -<strong><em>afm-system-daemon</em></strong> sends a signal <strong><em>org.AGL.afm.system.changed</em></strong>.</p> - +<p>Note that this methods is a simple method accessor of <strong><em>org.AGL.afm.system.uninstall</em></strong> from <strong><em>afm-system-daemon</em></strong>.</p> +<p>After the uninstallation and before returning to the sender, <strong><em>afm-system-daemon</em></strong> sends a signal <strong><em>org.AGL.afm.system.changed</em></strong>.</p> <p><strong>Input</strong>: the <em>id</em> of the application and optionally the application <em>root</em> path.</p> - <p>Either a string:</p> - -<pre><code>"appli@x.y" -</code></pre> - +<pre><code>"appli@x.y"</code></pre> <p>Or an object:</p> - <pre><code>{ - "id": "appli@x.y", - "root": "/a/path/to/the/root" -} -</code></pre> - -<p><strong>output</strong>: the value ‘true’.</p> + "id": "appli@x.y", + "root": "/a/path/to/the/root" +}</code></pre> +<p><strong>output</strong>: the value 'true'.</p> </body> </html> |