Gnutella::PacketProcessing::QueryRouting::QueryRoutingTable Class Reference

#include <QueryRoutingTable.h> [code]

List of all members.


Detailed Description

Todo:
Maybe extract the hashing stuff in a separate class?

Definition at line 35 of file QueryRoutingTable.h.

Public Member Functions

 QueryRoutingTable ()
 ~QueryRoutingTable ()
void reset (quint32 size)
void setRawTable (const QByteArray &rawTable)
void applyPatch (QByteArray &patchBuffer, quint8 entryBits)
QByteArray makePatchTo (const QueryRoutingTable &newTable, quint8 entryBits) const
void addTable (const QueryRoutingTable &other)
void scaledCopy (const QueryRoutingTable &other)
bool isEntrySet (quint32 index) const
void setEntry (quint32 index)
void resetEntry (quint32 index)
bool hasString (QString x) const
void add (QString x)
void remove (QString x)
quint32 size () const
QByteArray rawTable () const

Private Member Functions

int hash (QString x, int start, int end, quint8 bits) const
int hashFast (int x, quint8 bits) const

Private Attributes

QByteArray rawTable_
quint32 size_
quint32 sizeBits_


Constructor & Destructor Documentation

QueryRoutingTable::QueryRoutingTable  ) 
 

Definition at line 85 of file QueryRoutingTable.cpp.

QueryRoutingTable::~QueryRoutingTable  ) 
 

Definition at line 90 of file QueryRoutingTable.cpp.


Member Function Documentation

void QueryRoutingTable::add QString  x  ) 
 

Definition at line 315 of file QueryRoutingTable.cpp.

void QueryRoutingTable::addTable const QueryRoutingTable other  ) 
 

Definition at line 233 of file QueryRoutingTable.cpp.

void QueryRoutingTable::applyPatch QByteArray &  patchBuffer,
quint8  entryBits
 

Todo:
Maybe could use a lookup table for the cases entryBits equal 4 and 8?

Definition at line 116 of file QueryRoutingTable.cpp.

int QueryRoutingTable::hash QString  x,
int  start,
int  end,
quint8  bits
const [private]
 

Definition at line 330 of file QueryRoutingTable.cpp.

int QueryRoutingTable::hashFast int  x,
quint8  bits
const [private]
 

Definition at line 354 of file QueryRoutingTable.cpp.

bool QueryRoutingTable::hasString QString  x  )  const
 

Definition at line 308 of file QueryRoutingTable.cpp.

bool QueryRoutingTable::isEntrySet quint32  index  )  const
 

Definition at line 275 of file QueryRoutingTable.cpp.

QByteArray QueryRoutingTable::makePatchTo const QueryRoutingTable other,
quint8  entryBits
const
 

Todo:
Maybe could use a lookup table for the cases entryBits equal 4 and 8?

Definition at line 136 of file QueryRoutingTable.cpp.

QByteArray Gnutella::PacketProcessing::QueryRouting::QueryRoutingTable::rawTable  )  const [inline]
 

Definition at line 75 of file QueryRoutingTable.h.

void QueryRoutingTable::remove QString  x  ) 
 

Todo:
This may effectively remove another string y with same index.

Definition at line 322 of file QueryRoutingTable.cpp.

void QueryRoutingTable::reset quint32  size  ) 
 

Definition at line 94 of file QueryRoutingTable.cpp.

void QueryRoutingTable::resetEntry quint32  index  ) 
 

Definition at line 297 of file QueryRoutingTable.cpp.

void QueryRoutingTable::scaledCopy const QueryRoutingTable other  ) 
 

Definition at line 195 of file QueryRoutingTable.cpp.

void QueryRoutingTable::setEntry quint32  index  ) 
 

Definition at line 286 of file QueryRoutingTable.cpp.

void Gnutella::PacketProcessing::QueryRouting::QueryRoutingTable::setRawTable const QByteArray &  rawTable  )  [inline]
 

Definition at line 69 of file QueryRoutingTable.h.

quint32 Gnutella::PacketProcessing::QueryRouting::QueryRoutingTable::size  )  const [inline]
 

Definition at line 72 of file QueryRoutingTable.h.


Member Data Documentation

QByteArray Gnutella::PacketProcessing::QueryRouting::QueryRoutingTable::rawTable_ [private]
 

Definition at line 64 of file QueryRoutingTable.h.

quint32 Gnutella::PacketProcessing::QueryRouting::QueryRoutingTable::size_ [private]
 

Definition at line 65 of file QueryRoutingTable.h.

quint32 Gnutella::PacketProcessing::QueryRouting::QueryRoutingTable::sizeBits_ [private]
 

Definition at line 66 of file QueryRoutingTable.h.


The documentation for this class was generated from the following files: