Project

General

Profile

FileManager » History » Revision 5

Revision 4 (Greg Burri, 05/28/2010 02:55 AM) → Revision 5/7 (Greg Burri, 05/28/2010 02:57 AM)

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()@. @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*. *s*. 
 # 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 all directories and file from the file system. 
 *** ## @restoreFromFile(s)@ // Give the known hashes from *c* to the corresponding files.