added internal update of total size for directories and display in GUI

This commit is contained in:
csoler 2020-12-13 18:15:14 +01:00
parent 7b2f7f2e0e
commit 335a90cc92
6 changed files with 75 additions and 36 deletions

View file

@ -22,25 +22,40 @@
//
// This class is responsible for
// - maintaining a list of shared file hierarchies for each known friends
// - talking to the GUI
// - providing handles for the directory tree listing GUI
// - providing search handles for FT
// - keeping these lists up to date
// - sending our own file list to friends depending on the defined access rights
// - serving file search requests from other services such as file transfer
// - maintaining a list of shared file hierarchies for each known friends
// - talking to the GUI
// - providing handles for the directory tree listing GUI
// - providing search handles for FT
// - keeping these lists up to date
// - sending our own file list to friends depending on the defined access rights
// - serving file search requests from other services such as file transfer
//
// p3FileList does the following micro-tasks:
// - tick the watchers
// - get incoming info from the service layer, which can be:
// - directory content request => the directory content is shared to the friend
// - directory content => the directory watcher is notified
// - keep two queues of update requests:
// - fast queue that is handled in highest priority. This one is used for e.g. updating while browsing.
// - slow queue that is handled slowly. Used in background update of shared directories.
// p3FileList does the following micro-tasks:
// - tick the watchers
// - get incoming info from the service layer, which can be:
// - directory content request => the directory content is shared to the friend
// - directory content => the directory watcher is notified
// - keep two queues of update requests:
// - fast queue that is handled in highest priority. This one is used for e.g. updating while browsing.
// - slow queue that is handled slowly. Used in background update of shared directories.
//
// The file lists are not directry updated. A FileListWatcher class is responsible for this
// in every case.
// The list of local shared files is maintained by FileListWatcher.
//
// p3FileLists is organised as follows:
//
// p3FileDatabase
// |
// +---- HashStorage // Handles known hashes. Serves as a reference when new files are hashed.
// |
// +---- RemoteDirectoryStorage // Stores the list of shared files at friends
// | |
// | +---- InternalFileHierarchyStorage
// |
// +---- LocalDirectoryStorage // Stores the list of locally shared files
// | |
// | +---- InternalFileHierarchyStorage
// |
// +---- LocalDirectoryUpdater // Keeps the local lists up to date, by regularly crawling directories
//
#pragma once