Project

General

Profile

Actions

Architecture » History » Revision 10

« Previous | Revision 10/32 (diff) | Next »
Greg Burri, 07/29/2009 03:32 PM


Architecture

Core

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

NetworkListener

  • Listens for new TCP connections from peers. Forward it to the PeerManager.
  • Listens for new UDP datagrams.
  • Provides some interfaces to listen some events like :
    • New chat message
    • New search result
  • Sent 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

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

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.

PeerManager

  • Knows all other peers and different information about them like nick, amount of sharing and speed.
  • Each peer has a connection (socket) pool.
  • Treats new messages (unicast) from other peers.

GUI

Common

LogManager

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

Updated by Greg Burri over 15 years ago · 10 revisions