A struct encapsulating the required arguments to the selectLink(...) method of a sub-class of CjLinkSelector. More...
#include <CjLinkSelector.hh>
Public Member Functions | |
CjLinkSelector_select_va_t (int epoch, boost::mt19937 *rng, bool selfloop_ok, bool bridge_ok) | |
CjLinkSelector_select_va_t (const CjNetworkProcess_act_va_t &temp, bool selfloop_ok, bool bridge_ok) | |
Public Attributes | |
int | m_epoch |
The current epoch (if < 0 then this is the end epoch). | |
boost::mt19937 *const | m_rng |
A source of entropy. This shouldn't be stored in the selector - for use only in selectLink(...). | |
unsigned int | m_node_a |
The start node of the selected link should be returned in this variable. | |
unsigned int | m_node_b |
The destination node of the selected link should be returned in this variable. | |
bool | m_selfloop_ok |
if false then a self-loop isn't counted in the fully connected testing | |
bool | m_bridge_ok |
If true and this is a link remover then the link selected will not be tested if it is a bridge link whose removal could partition the network. |
A struct encapsulating the required arguments to the selectLink(...) method of a sub-class of CjLinkSelector.
When creating new sub-classes of CjLinkSelector and it is necessary to add an argument to the selectLink(...), they can be added here rather than updating the declaration of the CjLinkSelector::selectLink(...) and all sub-classes
if false then a self-loop isn't counted in the fully connected testing
If we are to choose a node pair for link addition then we won't consider node-pairs that are already fully connected. If this is true then the definition of fully-connected includes self loop, and the link selector could return a self-loop (i.e. m_node_a == m_node_b)