reactor-c 1.0
C Runtime for Lingua Franca
Loading...
Searching...
No Matches
federate_info_t Struct Reference

Information about a federate known to the RTI, including its runtime state, mode of execution, and connectivity with other federates. More...

#include <rti_remote.h>

Data Fields

bool clock_synchronization_enabled
 Indicates the status of clock synchronization for this federate.
int32_t * downstream_transients
 IDs of transient federates this federate has outbound connections to.
tag_t effective_start_tag
 Records the start time of the federate, which is mainly useful for transient federates.
scheduling_node_t enclave
 The base scheduling node information for this federate.
bool has_upstream_transient_federates
 Indicates whether the federate has upstream transient federates.
pqueue_tag_tin_transit_message_tags
 Record of in-transit messages to this federate that are not yet processed.
bool is_transient
 Indicates whether the federate is transient or persistent.
tag_t max_intended_tag
 The highest delay-adjusted intended tag of any message the RTI has received addressed to this federate, whether or not that message was actually forwarded (a message is not forwarded, e.g., if the destination is a transient that is absent or has not yet started).
bool neighbor_structure_received
 True after the first MSG_TYPE_NEIGHBOR_STRUCTURE has been accepted for this federate ID.
net_abstraction_t net
 The network abstraction for communicating with this federate.
int32_t number_of_downstream_transients
 Number of outbound connections to transient federates.
bool requested_stop
 Indicates that the federate has requested stop or has replied to a request for stop from the RTI.
lf_thread_t thread_id
 The ID of the thread handling communication with this federate.
struct sockaddr_in UDP_addr
 The UDP address for the federate.

Detailed Description

Information about a federate known to the RTI, including its runtime state, mode of execution, and connectivity with other federates.

The list of upstream and downstream federates does not include those that are connected via a "physical" connection (one denoted with ~>) because those connections do not impose any scheduling constraints.

Field Documentation

◆ clock_synchronization_enabled

bool federate_info_t::clock_synchronization_enabled

Indicates the status of clock synchronization for this federate.

Enabled by default.

◆ downstream_transients

int32_t* federate_info_t::downstream_transients

IDs of transient federates this federate has outbound connections to.

The array has size equal to the total number of transient federates in the federation, and entries are initialized (and reset) to -1.

◆ effective_start_tag

tag_t federate_info_t::effective_start_tag

Records the start time of the federate, which is mainly useful for transient federates.

◆ enclave

scheduling_node_t federate_info_t::enclave

The base scheduling node information for this federate.

◆ has_upstream_transient_federates

bool federate_info_t::has_upstream_transient_federates

Indicates whether the federate has upstream transient federates.

◆ in_transit_message_tags

pqueue_tag_t* federate_info_t::in_transit_message_tags

Record of in-transit messages to this federate that are not yet processed.

This record is ordered based on the time value of each message for a more efficient access.

◆ is_transient

bool federate_info_t::is_transient

Indicates whether the federate is transient or persistent.

◆ max_intended_tag

tag_t federate_info_t::max_intended_tag

The highest delay-adjusted intended tag of any message the RTI has received addressed to this federate, whether or not that message was actually forwarded (a message is not forwarded, e.g., if the destination is a transient that is absent or has not yet started).

Unlike in_transit_message_tags, this is deliberately NOT cleared when a transient federate disconnects: it is used when the federate later rejoins to compute an effective_start_tag that accounts for messages that arrived while it was absent, even though those messages themselves were dropped rather than queued.

◆ neighbor_structure_received

bool federate_info_t::neighbor_structure_received

True after the first MSG_TYPE_NEIGHBOR_STRUCTURE has been accepted for this federate ID.

Preserved across transient resign/reset so rejoins and hot swaps can validate against that reference.

◆ net

net_abstraction_t federate_info_t::net

The network abstraction for communicating with this federate.

◆ number_of_downstream_transients

int32_t federate_info_t::number_of_downstream_transients

Number of outbound connections to transient federates.

◆ requested_stop

bool federate_info_t::requested_stop

Indicates that the federate has requested stop or has replied to a request for stop from the RTI.

Used to prevent double-counting a federate when handling lf_request_stop().

◆ thread_id

lf_thread_t federate_info_t::thread_id

The ID of the thread handling communication with this federate.

◆ UDP_addr

struct sockaddr_in federate_info_t::UDP_addr

The UDP address for the federate.


The documentation for this struct was generated from the following file:
  • /Users/runner/work/reactor-c/reactor-c/core/federated/RTI/rti_remote.h