Jiri Simsa | d7616c9 | 2015-03-24 23:44:30 -0700 | [diff] [blame] | 1 | // Copyright 2015 The Vanadium Authors. All rights reserved. |
| 2 | // Use of this source code is governed by a BSD-style |
| 3 | // license that can be found in the LICENSE file. |
| 4 | |
Todd Wang | 8c4e5cc | 2015-04-09 11:30:52 -0700 | [diff] [blame] | 5 | // Package device defines interfaces for configuration of the Vanadium device |
| 6 | // manager. The subdirectories implement the v.io/v23/services/device |
| 7 | // interfaces. |
Bogdan Caprita | c87a914 | 2014-07-21 10:38:13 -0700 | [diff] [blame] | 8 | // |
Bogdan Caprita | 2b21936 | 2014-12-09 17:03:33 -0800 | [diff] [blame] | 9 | // The device manager is a server that is expected to run on every |
Suharsh Sivakumar | 1d38dc0 | 2015-03-16 17:53:29 -0700 | [diff] [blame] | 10 | // Vanadium-enabled device, and it handles both device management and management |
Bogdan Caprita | 2b21936 | 2014-12-09 17:03:33 -0800 | [diff] [blame] | 11 | // of the applications running on the device. |
Bogdan Caprita | c87a914 | 2014-07-21 10:38:13 -0700 | [diff] [blame] | 12 | // |
Bogdan Caprita | 2b21936 | 2014-12-09 17:03:33 -0800 | [diff] [blame] | 13 | // The device manager is responsible for installing, updating, and launching |
Bogdan Caprita | c87a914 | 2014-07-21 10:38:13 -0700 | [diff] [blame] | 14 | // applications. It therefore sets up a footprint on the local filesystem, both |
| 15 | // to maintain its internal state, and to provide applications with their own |
| 16 | // private workspaces. |
| 17 | // |
Bogdan Caprita | 2b21936 | 2014-12-09 17:03:33 -0800 | [diff] [blame] | 18 | // The device manager is responsible for updating itself. The mechanism to do |
| 19 | // so is implementation-dependent, though each device manager expects to be |
| 20 | // supplied with the file path of a symbolic link file, which the device manager |
| 21 | // will then update to point to the updated version of itself before terminating |
| 22 | // itself. The device manager should therefore be launched via this symbolic |
| 23 | // link to enable auto-updates. To enable updates, in addition to the symbolic |
| 24 | // link path, the device manager needs to be told what its application metadata |
| 25 | // is (such as command-line arguments and environment variables, i.e. the |
Todd Wang | 94c9d0b | 2015-04-01 14:27:00 -0700 | [diff] [blame] | 26 | // application envelope defined in the v.io/v23/services/application package), |
| 27 | // as well as the object name for where it can fetch an updated envelope, and |
| 28 | // the local filesystem path for its previous version (for rollbacks). |
Bogdan Caprita | c87a914 | 2014-07-21 10:38:13 -0700 | [diff] [blame] | 29 | // |
Bogdan Caprita | 2b21936 | 2014-12-09 17:03:33 -0800 | [diff] [blame] | 30 | // Finally, the device manager needs to know its own object name, so it can pass |
Bogdan Caprita | c87a914 | 2014-07-21 10:38:13 -0700 | [diff] [blame] | 31 | // that along to the applications that it starts. |
| 32 | // |
Bogdan Caprita | 2b21936 | 2014-12-09 17:03:33 -0800 | [diff] [blame] | 33 | // The impl subpackage contains the implementation of the device manager |
| 34 | // service. |
Bogdan Caprita | c87a914 | 2014-07-21 10:38:13 -0700 | [diff] [blame] | 35 | // |
| 36 | // The config subpackage encapsulates the configuration settings that form the |
Bogdan Caprita | 2b21936 | 2014-12-09 17:03:33 -0800 | [diff] [blame] | 37 | // device manager service's 'contract' with its environment. |
Bogdan Caprita | c87a914 | 2014-07-21 10:38:13 -0700 | [diff] [blame] | 38 | // |
Bogdan Caprita | a456f47 | 2014-12-10 10:18:03 -0800 | [diff] [blame] | 39 | // The deviced subpackage contains the main driver. |
| 40 | package device |