implementation of the forwarding table based on Bloom filters and counting algorithm. More...
#include <bctable.h>
Public Member Functions | |
virtual void | consolidate () throw () |
Prepares the forwarding table for matching. | |
virtual void | match (const message &, MatchHandler &) const throw () |
Processes a message, calling the output() function on the given MatchHandler object for each matching interface. |
implementation of the forwarding table based on Bloom filters and counting algorithm.
Like BTable, this implementation is based on encoded filters and messages. However, instead of using a linear scan of the set of encoded filters, this implementation uses a data structure and matching algorithm that are vary similar to those implemented in FwdTable.
WARNING: This implementation is provided primarily for experimental purposes. See BTable for details.
virtual void siena::BCTable::consolidate | ( | ) | throw () [virtual] |
Prepares the forwarding table for matching.
This function processes the forwarding table, packing some of its internal data structures and preparing them to be used to match events. This function must therefore be called after all the necessary calls to ifconfig and before matching messages with match().
The forwarding table can be reset by calling clear or clear_recycle.
Reimplemented from siena::ForwardingTable.
virtual void siena::BCTable::match | ( | const message & | , | |
MatchHandler & | ||||
) | const throw () [virtual] |
Processes a message, calling the output() function on the given MatchHandler object for each matching interface.
Matches a message against the predicates stored in the forwarding table. The result is processed through the MatchHandler passed as a parameter to this function.
Notice that the forwarding table must be consolidated by calling siena::ForwardingTable::consolidate() before this function is called.
Reimplemented from siena::BTable.