[haiku-commits] Change in haiku[master]: HaikuDepot: Process and Data-loading Improvements

  • From: Gerrit <review@xxxxxxxxxxxxxxxxxxx>
  • To: waddlesplash <waddlesplash@xxxxxxxxx>, haiku-commits@xxxxxxxxxxxxx
  • Date: Sun, 16 Dec 2018 21:13:23 +0000

From Andrew Lindesay <apl@xxxxxxxxxxxxxx>:

Andrew Lindesay has uploaded this change for review. ( 

Change subject: HaikuDepot: Process and Data-loading Improvements

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.
A docs/apps/haikudepot/images/process-interplay.odg
A docs/apps/haikudepot/images/process-interplay.svg
A docs/apps/haikudepot/images/processes.odg
A docs/apps/haikudepot/images/processes.svg
A docs/apps/haikudepot/server.md
M src/apps/haikudepot/HaikuDepotConstants.h
M src/apps/haikudepot/Jamfile
M src/apps/haikudepot/List.h
M src/apps/haikudepot/model/Model.cpp
M src/apps/haikudepot/model/Model.h
M src/apps/haikudepot/model/PackageInfo.cpp
M src/apps/haikudepot/model/PackageInfo.h
A src/apps/haikudepot/server/AbstractProcess.cpp
A src/apps/haikudepot/server/AbstractProcess.h
M src/apps/haikudepot/server/AbstractServerProcess.cpp
M src/apps/haikudepot/server/AbstractServerProcess.h
M src/apps/haikudepot/server/AbstractSingleFileServerProcess.cpp
M src/apps/haikudepot/server/AbstractSingleFileServerProcess.h
D src/apps/haikudepot/server/BulkLoadContext.cpp
D src/apps/haikudepot/server/BulkLoadContext.h
D src/apps/haikudepot/server/BulkLoadStateMachine.cpp
D src/apps/haikudepot/server/BulkLoadStateMachine.h
A src/apps/haikudepot/server/LocalPkgDataLoadProcess.cpp
A src/apps/haikudepot/server/LocalPkgDataLoadProcess.h
A src/apps/haikudepot/server/LocalRepositoryUpdateProcess.cpp
A src/apps/haikudepot/server/LocalRepositoryUpdateProcess.h
D src/apps/haikudepot/server/PkgDataUpdateProcess.h
A src/apps/haikudepot/server/ProcessCoordinator.cpp
A src/apps/haikudepot/server/ProcessCoordinator.h
A src/apps/haikudepot/server/ProcessCoordinatorFactory.cpp
A src/apps/haikudepot/server/ProcessCoordinatorFactory.h
A src/apps/haikudepot/server/ProcessNode.cpp
A src/apps/haikudepot/server/ProcessNode.h
D src/apps/haikudepot/server/RepositoryDataUpdateProcess.h
M src/apps/haikudepot/server/ServerHelper.cpp
M src/apps/haikudepot/server/ServerHelper.h
M src/apps/haikudepot/server/ServerIconExportUpdateProcess.cpp
M src/apps/haikudepot/server/ServerIconExportUpdateProcess.h
R src/apps/haikudepot/server/ServerPkgDataUpdateProcess.cpp
A src/apps/haikudepot/server/ServerPkgDataUpdateProcess.h
R src/apps/haikudepot/server/ServerRepositoryDataUpdateProcess.cpp
A src/apps/haikudepot/server/ServerRepositoryDataUpdateProcess.h
M src/apps/haikudepot/server/StandardMetaData.cpp
M src/apps/haikudepot/server/StandardMetaDataJsonEventListener.cpp
M src/apps/haikudepot/server/StandardMetaDataJsonEventListener.h
M src/apps/haikudepot/tar/TarArchiveService.cpp
M src/apps/haikudepot/tar/TarArchiveService.h
M src/apps/haikudepot/ui/App.cpp
M src/apps/haikudepot/ui/App.h
M src/apps/haikudepot/ui/MainWindow.cpp
M src/apps/haikudepot/ui/MainWindow.h
A src/apps/haikudepot/util/AppUtils.cpp
A src/apps/haikudepot/util/AppUtils.h
M src/apps/haikudepot/util/DataIOUtils.cpp
M src/apps/haikudepot/util/RepositoryUrlUtils.cpp
M src/apps/haikudepot/util/RepositoryUrlUtils.h
M src/apps/haikudepot/util/ToFileUrlProtocolListener.cpp
M src/tests/apps/haikudepot/ListTest.cpp
M src/tests/apps/haikudepot/ListTest.h
59 files changed, 3,668 insertions(+), 1,803 deletions(-)

  git pull ssh://git.haiku-os.org/haiku refs/changes/70/770/1
To view, visit https://review.haiku-os.org/770
To unsubscribe, or for help writing mail filters, visit 

Gerrit-Project: haiku
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I7668307645e3aabaf7e4a6e37e2cca80cc0f489e
Gerrit-Change-Number: 770
Gerrit-PatchSet: 1
Gerrit-Owner: Andrew Lindesay <apl@xxxxxxxxxxxxxx>

Other related posts:

  • » [haiku-commits] Change in haiku[master]: HaikuDepot: Process and Data-loading Improvements - Gerrit