#
d75b4d61 |
|
31-Jan-2021 |
Andrew Lindesay <apl@lindesay.co.nz> |
HaikuDepot: Remove Custom List Further removal of the use of custom list class; this time with the package lists. Relates To #15534 Change-Id: I1f01ed9d5ddbd7754097ce0adbf505d6ba17fd2f Reviewed-on: https://review.haiku-os.org/c/haiku/+/3732 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
05880d13 |
|
16-Sep-2020 |
Andrew Lindesay <apl@lindesay.co.nz> |
HaikuDepot: Custom List Removal (Depots) Remove use of custom list class where it is not really required in the area of Depots. Also convert the use of Depots to be wrapped in BReference to match other model objects. At the same time some data-loading logic has been simplified. Relates To #15534 Change-Id: Ie6fcc35f258a0c69c44990e4b09f6c32ec79945d Reviewed-on: https://review.haiku-os.org/c/haiku/+/3225 Reviewed-by: Rene Gollent <rene@gollent.com>
|
#
f0e491d3 |
|
28-Jul-2020 |
Andrew Lindesay <apl@lindesay.co.nz> |
HaikuDepot: Icon / Tarball Handling Instead of exploding the tar-ball of icons from HDS, keep it as a tar-ball, index it and read data directly out from specific indicies on demand. This will speed up the process of downloading the icons by removing the unpack. Also updates will be faster by avoiding the need to delete the old icon files. Because icons are loaded on-demand, the start time is faster by avoiding all the icon loads. There are also savings on memory consumption. Indexing on each load is surprisingly fast so no external index is maintained. Likewise for the tar-balls's meta-data. This commit does not cover the implementation of an LRU cache of the icons in memory. Relates to #15370 Change-Id: Ia1647d8c805be89618f493d2592bf7877fca3f14 Reviewed-on: https://review.haiku-os.org/c/haiku/+/3205 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
fa5c8097 |
|
25-Jul-2020 |
Andrew Lindesay <apl@lindesay.co.nz> |
HaikuDepot: Languages List Abstacts the list of supported languages into the LanguageModel class preventing use of List. Also; fix a few cases where newer logging techniques may have caused incorrect logic flow. Relates To #15534 Change-Id: I144fe4788abdaf0d93e53eeabc97b3f7aa2ec710 Reviewed-on: https://review.haiku-os.org/c/haiku/+/3085 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
f96d1f4d |
|
10-Jul-2020 |
Andrew Lindesay <apl@lindesay.co.nz> |
HaikuDepot: Better Logging Changes the logging in HD to use a macro for the various log levels to declutter the code and to make it easier to more systematically log. Change-Id: I025970707a0a11e7e3aaa4b52fc91288af0183f5 Reviewed-on: https://review.haiku-os.org/c/haiku/+/3018 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
c4199192 |
|
19-May-2020 |
Andrew Lindesay <apl@lindesay.co.nz> |
HaikuDepot: Performance This change removes two mistakes I made a long time ago that caused unnecessarily copying of lists of data. This fix speeds up the UI alot. This change also clears data in UI list elements when a bulk load is requested. It stops clearing otherwise and instead uses "add" and "remove" operations in the lists which is OK now because the UI list elements are much faster than they have been in the past. This removes the strange clean-and-reload that was visible in the UI previously. A threaded package loading system was put in place a long time ago, but with these performance improvements this mechanism is no longer necessary; it has been removed to simplify the code. Fixes #16012 Change-Id: I393cee929695726539602b51630ae285fb8384f1 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2748 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
041bbff9 |
|
29-Nov-2019 |
Andrew Lindesay <apl@lindesay.co.nz> |
HaikuDepot: Better Logging of Cache File Creation A user has reported having some problems around initial use of HaikuDepot and this seems to be related to setup of the directories etc... at start time. This change should improve the logging so that it is easier to identify the cause. Also some additional locking has been introduced as there might be a problem where two threads are creating the same directory at the same time. Relates to #15493 Change-Id: I4cbfda7c2ce87b8509ceb78788b7995ee3185050 Reviewed-on: https://review.haiku-os.org/c/haiku/+/1980 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
3369e03d |
|
15-Dec-2018 |
Andrew Lindesay <apl@lindesay.co.nz> |
HaikuDepot: Process and Data-loading Improvements This change is a reshuffle of the backend processing involved in the aquisition of data from servers including the pull-down and load of HPKR data as well as the pull-down and load of data from the HaikuDepotServer (HDS) system. The driver for this change is to implement an initial implementation of a progress bar for the loading of data as the application starts. The following are notable changes; * Removed some previously attempted 'functional style' logic in the model which didn't fit well with C++ * Use of the base-url in the logical mapping from HDS and HD data is no longer required and has been removed * Some logging has been improved making it clearer which part of HD is producing the logging which in turn helps with debugging issues * List class has been modified to more cleanly support sorted lists and binary searches; tests have also be updated accordingly * Reorganise and tidy-up of the data-loading processes' structures * The local repository update (HPKR) and data-load occur in background processes now in the same system as the HDS data-load - this has been crudely shifted from the MainWindow to new Processes and incorporated into the background processing system * The 'state-machine' background process runner is now replaced with a 'coordinator' style approach that can more easily handle the new processes related to HPKR loading. * Progress for loading processes is shown in the main window in the WorkStatusView - this is flickering a bit, but basically works * Added some documentation regarding how Processes work in the system * The "Refresh Repositories" menu item now also updates data from HDS * The "Refresh Repositories" menu item is disabled when the background processes are running that update the repository data Some further refinement would be good, but this change is large enough for one round of improvements. There is an issue that the status bar is used for screenshot display as well as this data-loading, but that was the case before so it is something that can be dealt with later if it is a problem. Change-Id: I7668307645e3aabaf7e4a6e37e2cca80cc0f489e Reviewed-on: https://review.haiku-os.org/770 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
54312619 |
|
15-Feb-2018 |
Andrew Lindesay <apl@lindesay.co.nz> |
HaikuDepot : 'Old Client' Handling The server side has the ability to reject client requests where the client is no longer supported because it is presumably too old. This change will inform the user when this happens and will prevent the client from attempting further server communications within this execution of the application.
|
#
3094fef3 |
|
19-Dec-2017 |
Andrew Lindesay <apl@lindesay.co.nz> |
HaikuDepot : More Backend Communications Improvements * Further improves the logging and provides some basic performance numbers. * Moves the bulk-load logic out of the data-model class. * Introduces a state-machine for the bulk-load process so that it will be more easily able to be shifted to non-blocking IO when the HTTP libraries can do that. * Implements concurrent loading of the bulk-data to hopefully improve lead time for icons and meta-data. * Loads data to a temporary file and then moves to the final location in order to avoid partially written data in the cache. * Handles situations where no network is available; prevents attempt to access the network. * Allows bulk-load processes to be cancelled when the application quits. * Introduces command-line arguments to help simulate scenarios to help with testing performance and network absence. * Implements ordered insert and binary search in the 'List' class + basic unit test.
|
#
f0665db4 |
|
05-Nov-2017 |
Andrew Lindesay <apl@lindesay.co.nz> |
HaikuDepot: Improved logging control The application had previously no means to control the verbosity of logging. This excessive logging meant that it was bit hard to understand what is going on. Now it is possible to define the level of logging that is output; especially as the application pulls-down data from the remote server system.
|
#
3d528c4a |
|
03-Nov-2017 |
Andrew Lindesay <apl@lindesay.co.nz> |
HaikuDepot: Change communication mechanism with server for repos (last commit with same title only included new files - added those now) Previously the desktop application would make a number of JSON-RPC calls over HTTP to get the repositories. Now it will make a single call to get the repositories and cache the result. This uses standard HTTP cache signalling techniques and allows the server-side the ability to cache the generated data as well. Note that the model classes and parse- related classes are generated and may not be code-style compliant. They are generated from JSON schema files in the server-side project. Information about this as well as the python files used to generate the C++ classes and headers are included in the server-side project.
|
#
a1c3daa6 |
|
01-Aug-2017 |
Andrew Lindesay <apl@lindesay.co.nz> |
HaikuDepot : Streaming Icon Meta-Data Parser More background work for later performance improvements. This change generalizes the parsing of meta-data from JSON streams as similarly structured meta-data is anticipated to be carried in other payloads. Unit tests have also been implemented to provide coverage on this new functionality.
|
#
6c9415e3 |
|
09-Feb-2017 |
Augustin Cavalier <waddlesplash@gmail.com> |
BJson: Use the normal "input, output" argument ordering instead of the reverse. Update all in-tree consumers of the BJson API to match. Also added const-qualifiers to the BString versions of the API, and added the leading "_" to the header guards.
|
#
7407e36a |
|
31-Jan-2017 |
Andrew Lindesay <apl@lindesay.co.nz> |
HaikuDepot; date formatting and location header handling The existing HTTP header date format handling code is employed rather than using specific logic for HD. Also the "Location" header handling is changed to work better for non-absolute URLs arriving in this header value on a redirect. Both suggestions from Adrien.
|
#
1290dd91 |
|
31-Jan-2017 |
Andrew Lindesay <apl@lindesay.co.nz> |
HaikuDepot: changes from code review from Jessica
|
#
0c1bbfe5 |
|
31-Jan-2017 |
Andrew Lindesay <apl@lindesay.co.nz> |
HaikuDepot: suggested code improvements from Adrien
|
#
0d51483f |
|
29-Jan-2017 |
Jessica Hamilton <jessica.l.hamilton@gmail.com> |
HaikuDepot: format string fixes.
|
#
19c15fec |
|
27-Jan-2017 |
Andrew Lindesay <apl@lindesay.co.nz> |
HaikuDepot: Improve icon download handling performance Previously each icon would launch an independent HTTP request to pull down the HVIF icon data. This change means that the data will be pulled down in bulk across all packages as a .tgz and will then be kept in a cache locally. The client-server logic will use standard "If-Modified-Since" headers to check for updates each time the HaikuDepot desktop application starts up. This arrangement will bring down the HVIF as well as bitmap icons and use the best representation it can. Additionally, it is possible from a command-line option to log HTTP traffic verbosely and it is also possible to use an "-h" flag to display help on command-line arguments. The code-structure around this change also anticipates some future extensions to handle other client-server improvements. Fixes #11804
|