Higher abstraction level is Networks
The Gnutella package is contains a number of sub-packages, which take on partial Gnutella tasks:
LocalPeer is the top-level object for our Gnutella node. We could say it is the facade of our Gnutella implementation. It provides an interface to connect to the network, search for files and download files. It delegates most of its functionality to the facades of the sub-packages.
The high level packages are Handshaking, Bootstrapping and Searching. Bootstrapping records some node addresses from the packets received by PacketProcessing and uses them to establish TCP connections to Gnutella nodes. Bootstrapping also supports UDP Host Caches. If a TCP connection is established, Handshaking takes care for negotiating the parameters of the new Gnutella connection. Searching is responsible for transforming Calitko searches and responses to/from Gnutella Packets::Query and Packets::QueryHits packets.
No Calitko abstractions (classes) for a search and search result developed yet. Maybe the best would be to use XML! We could decide on that after work on the Services::Searching is started.
Gnutella Resources
Classes | |
| class | LocalPeer |
| class | Workaround |
| struct | NodeInfo |
Namespaces | |
| namespace | Bootstrapping |
| Responsible for caching and finding Gnutella node addresses, which are needed to connect to the network. | |
| namespace | Handshaking |
| Take care for negotiating Gnutella connection parameters. | |
| namespace | PacketProcessing |
| Responsible for Gnutella packet traffic: caching, routing, flow control. Forwards packet to / from higher abstraction levels. | |
| namespace | Packets |
| Contains classes that encapsulate the Gnutella packets. | |
| namespace | Searching |
| Responsible for converting Calitko searches and results to/from Gnutella packets. | |
Enumerations | |
| enum | NodeType { TypeUnknown, TypePeer, TypeUltrapeer, TypeLeaf } |
Functions | |
| QDataStream & | operator<< (QDataStream &stream, const NodeInfo &nodeInfo) |
| QDataStream & | operator>> (QDataStream &stream, NodeInfo &nodeInfo) |
|
|
Definition at line 30 of file NodeType.h. |
|
||||||||||||
|
Definition at line 42 of file NodeInfo.cpp. |
|
||||||||||||
|
Definition at line 66 of file NodeInfo.cpp. |