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

Structure that an RTI instance uses to keep track of its own and its corresponding federates' state. More...

#include <rti_remote.h>

Data Fields

volatile bool all_federates_exited
 Boolean indicating that all federates have exited.
bool authentication_enabled
 Boolean indicating that authentication is enabled.
rti_common_t base
 The base RTI common data structure.
int32_t clock_sync_exchanges_per_interval
 Number of messages exchanged for each clock sync attempt.
clock_sync_stat clock_sync_global_status
 Indicates whether clock sync is globally on for the federation.
uint64_t clock_sync_period_ns
 Frequency (period in nanoseconds) between clock sync attempts.
lf_thread_t clock_thread
 Thread performing PTP clock sync sessions periodically.
const char * federation_id
 The ID of the federation that this RTI will supervise.
uint16_t final_port_TCP
 The final port number that the TCP socket server ends up using.
uint16_t final_port_UDP
 The final port number that the UDP socket server ends up using.
int64_t max_start_time
 Maximum start time seen so far from the federates.
int num_feds_proposed_start
 Number of federates that have proposed start times.
int socket_descriptor_TCP
 The TCP socket descriptor for the socket server.
int socket_descriptor_UDP
 The UDP socket descriptor for the socket server.
bool stop_in_progress
 Boolean indicating that a stop request is already in progress.
uint16_t user_specified_port
 The desired port specified by the user on the command line.

Detailed Description

Structure that an RTI instance uses to keep track of its own and its corresponding federates' state.

It is a special case of rti_common_t (declared in enclave.h). Inheritence is mimicked by having the first attributes to be the same as of rti_common_t, except that scheduling_nodes attribute here is of type federate_info_t**, while it is of type scheduling_node_t** in rti_common_t.

Note
IMPORTANT: If you make any change to this struct, you MUST also change rti_common_t in enclave.h! The change must exactly match.

Field Documentation

◆ all_federates_exited

volatile bool rti_remote_t::all_federates_exited

Boolean indicating that all federates have exited.

This gets set to true exactly once before the program exits. It is marked volatile because the write is not guarded by a mutex. The main thread makes this true, then calls shutdown and close on the socket, which will cause accept() to return with an error code in respond_to_erroneous_connections().

◆ authentication_enabled

bool rti_remote_t::authentication_enabled

Boolean indicating that authentication is enabled.

◆ base

rti_common_t rti_remote_t::base

The base RTI common data structure.

◆ clock_sync_exchanges_per_interval

int32_t rti_remote_t::clock_sync_exchanges_per_interval

Number of messages exchanged for each clock sync attempt.

◆ clock_sync_global_status

clock_sync_stat rti_remote_t::clock_sync_global_status

Indicates whether clock sync is globally on for the federation.

Federates can still selectively disable clock synchronization if they wanted to.

◆ clock_sync_period_ns

uint64_t rti_remote_t::clock_sync_period_ns

Frequency (period in nanoseconds) between clock sync attempts.

◆ clock_thread

lf_thread_t rti_remote_t::clock_thread

Thread performing PTP clock sync sessions periodically.

◆ federation_id

const char* rti_remote_t::federation_id

The ID of the federation that this RTI will supervise.

This should be overridden with a command-line -i option to ensure that each federate only joins its assigned federation.

◆ final_port_TCP

uint16_t rti_remote_t::final_port_TCP

The final port number that the TCP socket server ends up using.

◆ final_port_UDP

uint16_t rti_remote_t::final_port_UDP

The final port number that the UDP socket server ends up using.

◆ max_start_time

int64_t rti_remote_t::max_start_time

Maximum start time seen so far from the federates.

◆ num_feds_proposed_start

int rti_remote_t::num_feds_proposed_start

Number of federates that have proposed start times.

◆ socket_descriptor_TCP

int rti_remote_t::socket_descriptor_TCP

The TCP socket descriptor for the socket server.

◆ socket_descriptor_UDP

int rti_remote_t::socket_descriptor_UDP

The UDP socket descriptor for the socket server.

◆ stop_in_progress

bool rti_remote_t::stop_in_progress

Boolean indicating that a stop request is already in progress.

◆ user_specified_port

uint16_t rti_remote_t::user_specified_port

The desired port specified by the user on the command line.


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