Content-Based Networking Simulation Library Documentation (v. 1.2.1) |
Class used to compute and report false-positive and false-negative message receipts. More...
#include <DeliveryOracle.h>
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. |
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.
Copyright © 2001-2004 University of Colorado.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". This documentation is authored and maintained by Matthew J. Rutherford |