SyDEVS
v0.6.7
Multiscale Simulation and Systems Modeling Library
|
A base class for indivisible nodes in which function behavior is procedurally encoded. More...
#include <function_node.h>
Inherits sydevs::systems::system_node.
Inherited by sydevs::systems::parameter_node< T >, and sydevs::systems::statistic_node< T >.
Public Member Functions | |
function_node (const std::string &node_name, const node_context &external_context) | |
Constructs a function_node . More... | |
virtual | ~function_node ()=default |
Destructor. More... | |
data_mode | node_dmode () const |
Returns message for all atomic nodes. More... | |
scale | time_precision () const |
Returns no_scale for all function nodes. More... | |
duration | handle_initialization_event () |
Invoked when all flow input ports have values; calls flow_event . More... | |
duration | handle_unplanned_event (duration elapsed_dt) |
Never invoked for function nodes. More... | |
duration | handle_planned_event (duration elapsed_dt) |
Never invoked for function nodes. More... | |
void | handle_finalization_event (duration elapsed_dt) |
Never invoked for function nodes. More... | |
Public Member Functions inherited from sydevs::systems::system_node | |
system_node (const system_node &)=delete | |
No copy constructor. More... | |
system_node & | operator= (const system_node &)=delete |
No copy assignment. More... | |
system_node (system_node &&)=delete | |
No move constructor. More... | |
system_node & | operator= (system_node &&)=delete |
No move assignment. More... | |
virtual | ~system_node ()=default |
Destructor. More... | |
const std::string & | node_name () const |
Returns the name of the node. More... | |
const std::string & | full_name () const |
Returns the full name of the node, including parent nodes. More... | |
int64 | node_index () const |
Returns the index of the node within the parent node. More... | |
const node_interface & | external_interface () const |
Returns the object responsible for exchanging information between the node and its surrounding context. More... | |
const timer & | event_timer () const |
Returns the object that accumulated wallclock event durations. More... | |
template<typename T > | |
void | print (const T &X) |
Prints X while indicating the simulation time and node. More... | |
void | print (const char *raw_text) |
Prints raw_text while indicating the simulation time and node. More... | |
void | print (const std::string &text) |
Prints text while indicating the simulation time and node. More... | |
void | print_on_event (bool flag=true) const |
If flag is true , all event types are printed for this node. More... | |
void | adopt_print_flags (const system_node &node) const |
Adopts the print flags of node . More... | |
duration | process_initialization_event () |
Processes an initialization event; returns a planned duration. More... | |
duration | process_unplanned_event (duration elapsed_dt) |
Processes an unplanned event after an elapsed duration elapsed_dt ; returns a planned duration. More... | |
duration | process_planned_event (duration elapsed_dt) |
Processes a planned event after an elapsed duration elapsed_dt ; returns a planned duration. More... | |
void | process_finalization_event (duration elapsed_dt) |
Processes a finalization event after an elapsed duration elapsed_dt . More... | |
Additional Inherited Members | |
Protected Member Functions inherited from sydevs::systems::system_node | |
system_node (const std::string &node_name, const node_context &external_context) | |
Constructs a system_node . More... | |
node_interface & | external_IO () const |
Returns a non-const reference to the node's external interface. More... | |
timer & | ET () const |
Returns a non-const reference to the node's event timer. More... | |
duration | scale_planned_dt (duration planned_dt) const |
Adjusts the planned duration obtained from other nodes' event handlers. More... | |
Protected Attributes inherited from sydevs::systems::system_node | |
std::mt19937 & | rng |
Reference to the random number generator. More... | |
A base class for indivisible nodes in which function behavior is procedurally encoded.
The function_node
abstract base class is inherited by classes that represent a computation using a single procedurally defined function. The computation is specified by overriding the flow_event
pure virtual member function.
|
inline |
Constructs a function_node
.
The function node is created along with its associated node_interface
object.
node_name | The name of the node within the encompassing context. |
external_context | The context in which the node is constructed. |
|
virtualdefault |
Destructor.
|
inlinevirtual |
Never invoked for function nodes.
Implements sydevs::systems::system_node.
|
inlinevirtual |
Invoked when all flow input ports have values; calls flow_event
.
Implements sydevs::systems::system_node.
Never invoked for function nodes.
Implements sydevs::systems::system_node.
|
inlinevirtual |
Never invoked for function nodes.
Implements sydevs::systems::system_node.
|
inlinevirtual |
Returns message
for all atomic nodes.
Implements sydevs::systems::system_node.
|
inlinevirtual |
Returns no_scale
for all function nodes.
Implements sydevs::systems::system_node.