Higher abstraction level is Gnutella::PacketProcessing.
QueryRoutingTable is used to represent a QRT. It provides functions to calculate a patch table, or apply a patch on a table.
QrtWriter takes a QRT and generates a sequence of QRP packets. QrtWriter stores a copy of the last sent QRT, so that next time it can generate packets for a small patch only.
QrtReader takes QRP packets and reconstructs a QRT. QrtReader stores the last received QRT, so that it will be able to reconstruct a sequence of patch packets.
QrtExchanger is used by PacketProcessor for handling of Packets::QueryRoutingPatch and Packets::QueryRoutingReset packet objects. QrtExchanger stores a QRT per each active Gnutella connection. It also stores the QRT of our node.
Classes | |
| class | QrtExchangerPrivate |
| class | QrtExchanger |
| The class handles all QRT exchange between peers, ultrapeers and leaves. More... | |
| class | QrtReaderPrivate |
| class | QrtReader |
| class | QrtWriterPrivate |
| class | QrtWriter |
| class | QueryRoutingTable |
| class | QueryRoutingTableTest |
Enumerations | |
| enum | Constants { DefaultQrtSize = 65536 } |
| enum | Constants { PatchSize = 1024 } |
Functions | |
| static bool | isPowerOf2 (quint32 size) |
| quint8 | leftNibbleNonZero (quint8 ch) |
| quint8 | rightNibbleNonZero (quint8 ch) |
| quint8 | checkTwoNibbles (quint8 ch) |
| quint8 | getBitsToOr (quint8 ch, quint8 entryBits) |
| CPPUNIT_TEST_SUITE_REGISTRATION (QueryRoutingTableTest) | |
Variables | |
| static const int | A_INT = 0x4F1BBCDC |
| static const quint8 | EntryMask [8] |
| static const quint8 | ValueShift [8] = { 7, 6, 5, 4, 3, 2, 1} |
|
|
Definition at line 34 of file QrtWriter.cpp. |
|
|
Definition at line 34 of file QrtExchanger.cpp. |
|
|
Definition at line 55 of file QueryRoutingTable.cpp. |
|
|
|
|
||||||||||||
|
Definition at line 69 of file QueryRoutingTable.cpp. |
|
|
Definition at line 39 of file QueryRoutingTable.cpp. |
|
|
Definition at line 45 of file QueryRoutingTable.cpp. |
|
|
Definition at line 50 of file QueryRoutingTable.cpp. |
|
|
Definition at line 34 of file QueryRoutingTable.cpp. |
|
|
Initial value: { 0x80, 0x40, 0x20, 0x10,
0x08, 0x04, 0x02, 0x01}
Definition at line 35 of file QueryRoutingTable.cpp. |
|
|
Definition at line 37 of file QueryRoutingTable.cpp. |