Content-Based Networking Simulation Library Documentation (v. 1.2.1)

Static Public Member Functions

cbnsim::DeliveryOracle Class Reference

Class used to compute and report false-positive and false-negative message receipts. More...

#include <DeliveryOracle.h>

List of all members.

Static Public Member Functions

static void update_dci_windows ()
 Removes the least recent packet window from the moving average and creates a new, blank, window in for the next DCI.
static double false_negative_percent ()
 Returns the percentage of ideal message deliveries that are false negatives.
static unsigned int false_negative_count ()
 Returns the number of message deliveries that are false negatives.
static double false_positive_percent ()
 Returns the percentage of ideal message deliveries that are false positives.
static unsigned int false_positive_count ()
 Returns the number of message deliveries that are false negatives.
static void log_false_delivery (MessageId message_id, ssim::ProcessId pid)
 Logs a false message delivery. A false message delivery is any message delivery that cannot be processed by the receiving Node. This typically means that a Node received a message delivery that did not match its local applications and that could not be relayed to other Node processes.
static void log_true_delivery (MessageId message_id, ssim::ProcessId pid)
 Logs the receipt of a true message delivery. A true message delivery is one that the receiving Node can process by either delivering the message to its local applications or to its neighboring Node processes.
static MessageId send_message (ssim::ProcessId pid, const Message &m)
 Method called by Driver when a send_message workload event is encountered. The DeliveryOracle generates a unique message id each time, and calculates the list of Node processes that should receive this based on its instantaneous knowledge of the system.
static void set_predicate (ssim::ProcessId pid, const Predicate &p)
 Method called by Driver when a set_predicate workload event is encountered. The DeliveryOracle updates its internal forwarding table that is used for making delivery predictions.

Detailed Description

Class used to compute and report false-positive and false-negative message receipts.

Whenever a set_predicate workload event is encountered, the Driver notifies DeliveryOracle which maintains instantaneous predicate knowledge for the system.

When a send_message workload event is encountered the Driver notifies DeliveryOracle which computes the set of Node processes that should receive it.

The key to getting accurate numbers is the placement of the calls to DeliveryOracle::close_message, DeliveryOracle::log_false_delivery, and DeliveryOracle::log_true_delivery. The MessageId parameter of these messages must be the MessageId that was passed into the Node::send_message method.


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