Actions
Architecture » History » Revision 14
« Previous |
Revision 14/32
(diff)
| Next »
Greg Burri, 09/10/2009 10:49 AM
Architecture¶
This page shows the architecture with two component diagrams, one for the Core and one for the GUI. The responsibilities of each component are then listed.
Core¶
FileManager¶
- Kept up to date a list of shared files.
- Cuts file in chunks.
- Each chunk has a hash and can be read or write.
- Can make fast search with indexed words.
- Can make fast search from a hash code.
- The directory structure can be browse.
- Theses data (files/dirs/chunks/hashes) are persisted to avoid re-hashing.
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.
- 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 queue with different status.
- Has a pool of downloader which will choose a free chunk and :
- Ask the chunk's peer source for the hashes if they are unknown.
- Download it from a known peer.
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 transfer.
- Each peer has a connection (socket) pool.
- Treats new messages (unicast) from other peers.
RemoteControlManager¶
- Manages all connections from remote controllers.
- Send periodically the state of the core to the controllers.
- Send asynchronous events to the controllers.
- Dispatch the controllers commands.
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 about 15 years ago · 14 revisions