Warning, /frameworks/knewstuff/docs/EngineFlow.txt is written in an unsupported language. File is not indexed.

0001 This is how the KNS::Engine works....
0002 it is a higher-level view which does not talk about KNS::DxsEngine
0003 or KNS::CoreEngine yet, those will be documented later.
0004 
0005 General
0006 -------
0007 
0008 The KNS::Engine class is the only class that applications need to care
0009 about (beside the information from *.knsrc files of course).
0010 As such, this class should be as comfortable as possible.
0011 
0012 There are two principal operations supported by it, upload and download.
0013 Other operations, especially direct interaction through DXS, is also
0014 handled by it since it inherits from DxsEngine.
0015 
0016 Both principal operations have a modal and a non-modal way of being called.
0017 The modal way is the easiest one and translates the old
0018         KNS::DownloadDialog::open()
0019 call from KNewStuff1 to the new
0020         KNS::Engine::downloadDialogModal()
0021 call in KNewStuff2. Similarly, calling ::uploadDialogModal() handles all
0022 upload in a modal way, without the need for signals and slots.
0023 
0024 The modal calls return the list of affected entries directly. These entries
0025 should be queried about their status for installed, removed and updated
0026 entries in the download dialog, and a single entry returned for the upload
0027 dialog.
0028 The non-modal calls will send signals for each affected entry.
0029 
0030 Upload
0031 ------
0032 
0033 The state machine for modal upload is as follows:
0034 
0035 * provider loading
0036   * failure(*) -> stop
0037   * finish(*) -> next/provider selection
0038   * provider(1) -> discard
0039 * provider selection
0040   * reject -> stop
0041   * accept -> next/meta data selection
0042 * meta data selection
0043   * reject -> stop
0044   * accept -> next/upload
0045 * upload
0046   * failure -> stop
0047   * success -> stop + result
0048