Project

General

Profile

Architecture » History » Revision 8

Revision 7 (Greg Burri, 07/29/2009 10:21 AM) → Revision 8/32 (Greg Burri, 07/29/2009 02:40 PM)

h1. Architecture 


 h2. Core 

 !core_components.png! 

 h3. [[FileManager]] 

 * Kept up to date the list of shared files 
 * Can make fast search with indexed words 
 * Cuts file in chunks 
 * Each chunk has a hash and can be read or write 
 * The directory structure can be browse 
 * Theses data (files/dirs/chunks/hashes) are persisted 


 h3. [[NetworkListener]] 

 * Listen for new TCP connections from peers. Forward it to the _PeerManager_. 
 * Listen for new UDP datagrams. 
 * Provides some interfaces to listen some events like : 
 ** New chat message 
 ** New search result 
 * Send periodically an UDP datagram to show its presence. 
 ** This message contains the top chunks 
 ** For each chunk the known IP's are gave to the _DownloadManager_ 


 h3. [[DownloadManager]] 

 * Has a download list with different status 
 * Has a pool of downloader which will choose a free chunk and : 
 ** Download it from a know peer. 
 ** Ask first the chunk's peer source for the hashes if they are unknown 


 h2. GUI 


 h2. Common 

 h3. [[LogManager]] 

 * Logs some kind of severity messages 
 * Can store the log in a file 
 * Used by Core and GUI