helics  2.5.2
Macros | Enumerations
helics_enums.h File Reference

base helics enumerations for C and C++ API's More...

Go to the source code of this file.

Macros

#define helics_data_type_char   helics_data_type_string
 

Enumerations

enum  helics_core_type {
  helics_core_type_default, helics_core_type_zmq = 1, helics_core_type_mpi = 2, helics_core_type_test = 3,
  helics_core_type_interprocess = 4, helics_core_type_ipc = 5, helics_core_type_tcp = 6, helics_core_type_udp = 7,
  helics_core_type_zmq_test, helics_core_type_nng = 9, helics_core_type_tcp_ss, helics_core_type_http = 12,
  helics_core_type_websocket = 14, helics_core_type_inproc = 18, helics_core_type_null = 66
}
 
enum  helics_data_type {
  helics_data_type_string = 0, helics_data_type_double = 1, helics_data_type_int = 2, helics_data_type_complex = 3,
  helics_data_type_vector = 4, helics_data_type_complex_vector = 5, helics_data_type_named_point = 6, helics_data_type_boolean = 7,
  helics_data_type_time = 8, helics_data_type_raw = 25, helics_data_type_multi = 33, helics_data_type_any = 25262
}
 
enum  helics_federate_flags {
  helics_flag_observer = 0, helics_flag_uninterruptible = 1, helics_flag_interruptible = 2, helics_flag_source_only = 4,
  helics_flag_only_transmit_on_change = 6, helics_flag_only_update_on_change = 8, helics_flag_wait_for_current_time_update = 10, helics_flag_restrictive_time_policy = 11,
  helics_flag_rollback = 12, helics_flag_forward_compute = 14, helics_flag_realtime = 16, helics_flag_single_thread_federate = 27,
  helics_flag_slow_responding = 29, helics_flag_delay_init_entry = 45, helics_flag_enable_init_entry = 47, helics_flag_ignore_time_mismatch_warnings = 67,
  helics_flag_terminate_on_error = 72
}
 
enum  helics_log_levels {
  helics_log_level_no_print = -1, helics_log_level_error = 0, helics_log_level_warning = 1, helics_log_level_summary = 2,
  helics_log_level_connections = 3, helics_log_level_interfaces = 4, helics_log_level_timing = 5, helics_log_level_data = 6,
  helics_log_level_trace = 7
}
 
enum  helics_error_types {
  helics_error_fatal = -404, helics_error_external_type = -203, helics_error_other = -101, helics_error_insufficient_space,
  helics_error_execution_failure = -14, helics_error_invalid_function_call, helics_error_invalid_state_transition, helics_warning = -8,
  helics_error_system_failure, helics_error_discard = -5, helics_error_invalid_argument, helics_error_invalid_object = -3,
  helics_error_connection_failure = -2, helics_error_registration_failure = -1, helics_ok = 0
}
 
enum  helics_properties {
  helics_property_time_delta = 137, helics_property_time_period = 140, helics_property_time_offset = 141, helics_property_time_rt_lag = 143,
  helics_property_time_rt_lead = 144, helics_property_time_rt_tolerance = 145, helics_property_time_input_delay = 148, helics_property_time_output_delay = 150,
  helics_property_int_max_iterations = 259, helics_property_int_log_level = 271, helics_property_int_file_log_level = 272, helics_property_int_console_log_level = 274
}
 
enum  helics_multi_input_mode {
  helics_multi_input_no_op = 0, helics_multi_input_vectorize_operation = 1, helics_multi_input_and_operation = 2, helics_multi_input_or_operation = 3,
  helics_multi_input_sum_operation = 4, helics_multi_input_diff_operation = 5, helics_multi_input_max_operation = 6, helics_multi_input_min_operation = 7,
  helics_multi_input_average_operation = 8
}
 
enum  helics_handle_options {
  helics_handle_option_connection_required = 397, helics_handle_option_connection_optional = 402, helics_handle_option_single_connection_only = 407, helics_handle_option_multiple_connections_allowed = 409,
  helics_handle_option_buffer_data = 411, helics_handle_option_strict_type_checking = 414, helics_handle_option_ignore_unit_mismatch = 447, helics_handle_option_only_transmit_on_change = 452,
  helics_handle_option_only_update_on_change = 454, helics_handle_option_ignore_interrupts = 475, helics_handle_option_multi_input_handling_method = 507, helics_handle_option_input_priority_location = 510,
  helics_handle_option_clear_priority_list = 512, helics_handle_option_connections = 522
}
 
enum  helics_filter_type {
  helics_filter_type_custom = 0, helics_filter_type_delay = 1, helics_filter_type_random_delay = 2, helics_filter_type_random_drop = 3,
  helics_filter_type_reroute = 4, helics_filter_type_clone = 5, helics_filter_type_firewall = 6
}
 

Detailed Description

base helics enumerations for C and C++ API's

Macro Definition Documentation

◆ helics_data_type_char

#define helics_data_type_char   helics_data_type_string

single character data type this is intentionally the same as string

Enumeration Type Documentation

◆ helics_core_type

pick a core type depending on compile configuration usually either ZMQ if available or TCP

Enumerator
helics_core_type_default 

a default core type that will default to something available

helics_core_type_zmq 

use the Zero MQ networking protocol

helics_core_type_mpi 

use MPI for operation on a parallel cluster

helics_core_type_test 

use the Test core if all federates are in the same process

helics_core_type_interprocess 

interprocess uses memory mapped files to transfer data (for use when all federates are on the same machine

helics_core_type_ipc 

interprocess uses memory mapped files to transfer data (for use when all federates are on the same machine ipc is the same as /ref helics_core_type_interprocess

helics_core_type_tcp 

use a generic TCP protocol message stream to send messages

helics_core_type_udp 

use UDP packets to send the data

helics_core_type_zmq_test 

single socket version of ZMQ core usually for high fed count on the same system

helics_core_type_nng 

for using the nanomsg communications

helics_core_type_tcp_ss 

a single socket version of the TCP core for more easily handling firewalls

helics_core_type_http 

a core type using http for communication

helics_core_type_websocket 

a core using websockets for communication

helics_core_type_inproc 

an in process core type for handling communications in shared memory it is pretty similar to the test core but stripped from the "test" components

helics_core_type_null 

an explicit core type that is recognized but explicitly doesn't exist, for testing and a few other assorted reasons

◆ helics_data_type

enumeration of allowable data types for publications and inputs

Enumerator
helics_data_type_string 

a sequence of characters

helics_data_type_double 

a double precision floating point number

helics_data_type_int 

a 64 bit integer

helics_data_type_complex 

a pair of doubles representing a complex number

helics_data_type_vector 

an array of doubles

helics_data_type_complex_vector 

a complex vector object

helics_data_type_named_point 

a named point consisting of a string and a double

helics_data_type_boolean 

a boolean data type

helics_data_type_time 

time data type

helics_data_type_raw 

raw data type

helics_data_type_multi 

the data type can change

helics_data_type_any 

open type that can be anything

◆ helics_error_types

enumeration of return values from the C interface functions

Enumerator
helics_error_fatal 

global fatal error for federation

helics_error_external_type 

an unknown non-helics error was produced

helics_error_other 

the function produced a helics error of some other type

helics_error_insufficient_space 

insufficient space is available to store requested data

helics_error_execution_failure 

the function execution has failed

helics_error_invalid_function_call 

the call made was invalid in the present state of the calling object

helics_error_invalid_state_transition 

error issued when an invalid state transition occurred

helics_warning 

the function issued a warning of some kind

helics_error_system_failure 

the federate has terminated unexpectedly and the call cannot be completed

helics_error_discard 

the input was discarded and not used for some reason

helics_error_invalid_argument 

the parameter passed was invalid and unable to be used

helics_error_invalid_object 

indicator that the object used was not a valid object

helics_error_connection_failure 

the operation to connect has failed

helics_error_registration_failure 

registration has failed

helics_ok 

the function executed successfully

◆ helics_federate_flags

enumeration of possible federate flags

Enumerator
helics_flag_observer 

flag indicating that a federate is observe only

helics_flag_uninterruptible 

flag indicating that a federate can only return requested times

helics_flag_interruptible 

flag indicating that a federate can be interrupted

helics_flag_source_only 

flag indicating that a federate/interface is a signal generator only

helics_flag_only_transmit_on_change 

flag indicating a federate/interface should only transmit values if they have changed(binary equivalence)

helics_flag_only_update_on_change 

flag indicating a federate/interface should only trigger an update if a value has changed (binary equivalence)

helics_flag_wait_for_current_time_update 

flag indicating a federate should only grant time if all other federates have already passed the requested time

helics_flag_restrictive_time_policy 

flag indicating a federate should operate on a restrictive time policy, which disallows some 2nd order time evaluation and can be useful for certain types of dependency cycles and update patterns, but generally shouldn't be used as it can lead to some very slow update conditions

helics_flag_rollback 

flag indicating that a federate has rollback capability

helics_flag_forward_compute 

flag indicating that a federate performs forward computation and does internal rollback

helics_flag_realtime 

flag indicating that a federate needs to run in real time

helics_flag_single_thread_federate 

flag indicating that the federate will only interact on a single thread

helics_flag_slow_responding 

flag specifying that a federate, core, or broker may be slow to respond to pings If the federate goes offline there is no good way to detect it so use with caution

helics_flag_delay_init_entry 

used to delay a core from entering initialization mode even if it would otherwise be ready

helics_flag_enable_init_entry 

used to clear the HELICS_DELAY_INIT_ENTRY flag in cores

helics_flag_ignore_time_mismatch_warnings 

used to not display warnings on mismatched requested times

helics_flag_terminate_on_error 

specify that a federate error should terminate the federation

◆ helics_filter_type

enumeration of the predefined filter types

Enumerator
helics_filter_type_custom 

a custom filter type that executes a user defined callback

helics_filter_type_delay 

a filter type that executes a fixed delay on a message

helics_filter_type_random_delay 

a filter type that executes a random delay on the messages

helics_filter_type_random_drop 

a filter type that randomly drops messages

helics_filter_type_reroute 

a filter type that reroutes a message to a different destination than originally specified

helics_filter_type_clone 

a filter type that duplicates a message and sends the copy to a different destination

helics_filter_type_firewall 

a customizable filter type that can perform different actions on a message based on firewall like rules

◆ helics_handle_options

enumeration of options that apply to handles

Enumerator
helics_handle_option_connection_required 

specify that a connection is required for an interface and will generate an error if not available

helics_handle_option_connection_optional 

specify that a connection is NOT required for an interface and will only be made if available no warning will be issues if not available

helics_handle_option_single_connection_only 

specify that only a single connection is allowed for an interface

helics_handle_option_multiple_connections_allowed 

specify that multiple connections are allowed for an interface

helics_handle_option_buffer_data 

specify that the last data should be buffered and sent on subscriptions after init

helics_handle_option_strict_type_checking 

specify that the types should be checked strictly for pub/sub and filters

helics_handle_option_ignore_unit_mismatch 

specify that the mismatching units should be ignored

helics_handle_option_only_transmit_on_change 

specify that an interface will only transmit on change(only applicable to publications)

helics_handle_option_only_update_on_change 

specify that an interface will only update if the value has actually changed

helics_handle_option_ignore_interrupts 

specify that an interface does not participate in determining time interrupts

helics_handle_option_multi_input_handling_method 

specify the multi-input processing method for inputs

helics_handle_option_input_priority_location 

specify the source index with the highest priority

helics_handle_option_clear_priority_list 

specify that the priority list should be cleared or question if it is cleared

helics_handle_option_connections 

specify the required number of connections or get the actual number of connections

◆ helics_log_levels

log level definitions

Enumerator
helics_log_level_no_print 

don't print anything except a few catastrophic errors

helics_log_level_error 

only print error level indicators

helics_log_level_warning 

only print warnings and errors

helics_log_level_summary 

warning errors and summary level information

helics_log_level_connections 

summary+ notices about federate and broker connections +messages about network connections

helics_log_level_interfaces 

connections+ interface definitions

helics_log_level_timing 

interfaces + timing message

helics_log_level_data 

timing+ data transfer notices

helics_log_level_trace 

all internal messages

◆ helics_multi_input_mode

enumeration of the multi_input operations

Enumerator
helics_multi_input_no_op 

time and priority order the inputs from the core library

helics_multi_input_vectorize_operation 

vectorize the inputs either double vector or string vector

helics_multi_input_and_operation 

all inputs are assumed to be boolean and all must be true to return true

helics_multi_input_or_operation 

all inputs are assumed to be boolean and at least one must be true to return true

helics_multi_input_sum_operation 

sum all the inputs

helics_multi_input_diff_operation 

do a difference operation on the inputs, first-sum(rest) for double input, vector diff for vector input

helics_multi_input_max_operation 

find the max of the inputs

helics_multi_input_min_operation 

find the min of the inputs

helics_multi_input_average_operation 

take the average of the inputs

◆ helics_properties

enumeration of properties that apply to federates

Enumerator
helics_property_time_delta 

the property controlling the minimum time delta for a federate

helics_property_time_period 

the property controlling the period for a federate

helics_property_time_offset 

the property controlling time offset for the period of federate

helics_property_time_rt_lag 

the property controlling real time lag for a federate the max time a federate can lag real time

helics_property_time_rt_lead 

the property controlling real time lead for a federate the max time a federate can be ahead of real time

helics_property_time_rt_tolerance 

the property controlling real time tolerance for a federate sets both rt_lag and rt_lead

helics_property_time_input_delay 

the property controlling input delay for a federate

helics_property_time_output_delay 

the property controlling output delay for a federate

helics_property_int_max_iterations 

integer property controlling the maximum number of iterations in a federate

helics_property_int_log_level 

integer property controlling the log level in a federate see helics_log_levels

helics_property_int_file_log_level 

integer property controlling the log level for file logging in a federate see helics_log_levels

helics_property_int_console_log_level 

integer property controlling the log level for file logging in a federate see helics_log_levels