Architecture » History » Revision 9
Revision 8 (Greg Burri, 07/29/2009 02:40 PM) → Revision 9/32 (Greg Burri, 07/29/2009 02:47 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]] * Listens Listen for new TCP connections from peers. Forward it to the _PeerManager_. * Listens Listen for new UDP datagrams. * Provides some interfaces to listen some events like : ** New chat message ** New search result * Sent 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 h3. [[UploadManager]] * Listens the _PeerManager_ for new upload requests. * Manage a pool of uploaders which will read a chunk from _FileManager_ and send it to the remote peer. h2. GUI h2. Common h3. [[LogManager]] * Logs some kind of severity messages * Can store the log in a file * Used by Core and GUI