The Hybrid Share 2.0 Structure will be the same or very similar to the previews release.

Hybrid Share
Hybrid Share Plugins
Hybrid Share GUI
Hybrid Share Core
Niry

At the low level of the Structure there're a set of utility classes, that will be used from the Core, Plugins and GUI.

Hybrid Share Core define the Protocol, and all the features of the Application. The Core contains also the Plugin Manager that will load all the extra features of the applications.

Hybrid Share GUI, is the Glue between the end user and the core.

Hybrid Share Plugins, could comunicate with the GUI or directly with the Core.

Hybrid Share Core

Hybrid Share Core
Downloads Manager
Protocol Manager
Network Manager
Uploads Manager
Plugin Manager

Core will contains pointer at all the Main classes used, this classes will be accessibles from plugins. Plugins are loaded by Plugin Manager class, that will load, unload and manage all the plugins.

Downloads Manager and Protocol Manager are controlled by Network Manager, that contains P2PManager, Network Manager intercept commands and do as Dispatcher between Protocol and Download Manager. Uploads and all other Sends Methods, have to pass from Network Manager, that manage Commands Queue, this will make application more responsive.

Downloads Manager
Downloads Manager
FileManager[]

Downloads Manager will keep a list of files that you're downloading, and it'll try to get parts from different clients connected to you. Each file is devided in block, so you could receive before the final part or middle part, with this method we could ask different blocks to different users. The files in downloading will be placed in a temporary directory, and will be moved into selected directory once that are finished.

Uploads Manager
Uploads Manager
FileManager[]

Like the Downloads Manager, the Uploads Manager contains the list of requested files that you have to uploads.