Project

General

Profile

FileManager » History » Revision 6

Revision 5 (Greg Burri, 05/28/2010 02:57 AM) → Revision 6/7 (Greg Burri, 05/28/2010 03:51 PM)

h1. FileManager 

 h2. Algorithms 

 * [[Algorithms#Searching]] 

 h2. Sharing 

 There is two type of shared directory : 

 # Readonly : The content will only be uploaded. 
 # Read and write : New downloaded file goes here. 

 * Two same directories cannot be shared. 
 * A shared directory can be a subdirectory of an existing share 
 * A shared directory can contains an existing share 

 Symlinks : pay attention ... 


 h3. Starting process 

 The process begin in @FileManager::FileManager()@. 

 # Load the cache (proto buff) -> *c*. 
 # Give *c* to the cache. 
 # The cache create shared directories (@SharedDirectory@) -> *S*, sub directories (@Directory@) and files (@File@) according *c*. 
 # For each *s* in *S* : 
 ** @fileUpdater->addRoot(s)@ (via signals). 
 # @fileUpdater->start()@ // Start the file updater daemon (thread). 
 ** For each *s* in *S* : 
 *** @scan(s)@ // Read read all directories and file from the file system. 
 *** @restoreFromFile(s)@ // Give the known hashes from *c* to the corresponding files.