Skip to content

Instantly share code, notes, and snippets.

@kdheepak
Last active May 27, 2020 21:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kdheepak/0b818874a2097bfc72ffb10f150f2308 to your computer and use it in GitHub Desktop.
Save kdheepak/0b818874a2097bfc72ffb10f150f2308 to your computer and use it in GitHub Desktop.
generate helics documentation using libclang
using Clang
using HELICS
const HELICS_jll = HELICS.Lib.HELICS_jll
# LIBCLANG_HEADERS are those headers to be wrapped.
const LIBHELICS_INCLUDE = [
normpath(joinpath(HELICS_jll.artifact_dir, "include", "helics", "shared_api_library")),
normpath(joinpath(HELICS_jll.artifact_dir, "include", "helics")),
]
const BLACKLIST = [
"helics_input"
"helics_publication"
"helics_endpoint"
"helics_filter"
"helics_core"
"helics_broker"
"helics_federate"
"helics_federate_info"
"helics_query"
"helics_message_object"
"helics_time"
"helics_bool"
"helics_complex"
"helics_error"
"helics_message"
]
function generate_enum_documentation(ctx)
previously_generated = String[]
println("""## Enum""")
println("")
for trans_unit in ctx.trans_units
root_cursor = getcursor(trans_unit)
push!(ctx.cursor_stack, root_cursor)
header = spelling(root_cursor)
ctx.children = children(root_cursor)
for (i, cursor) in enumerate(ctx.children)
child_name = name(cursor)
child_header = filename(cursor)
ctx.children_index = i
!startswith(lowercase(child_name), "helics") && continue
if cursor isa CLTypedefDecl
if spelling(cursor) ∈ BLACKLIST || spelling(cursor) ∈ previously_generated
continue
end
println("""
### `$(spelling(cursor))`
""")
println("""```eval_rst""")
for c in children(children(cursor)[1])
name = spelling(c)
println("""
.. doxygenenumvalue:: $name
:project: helics
""")
end
println("""```""")
push!(previously_generated, spelling(cursor))
end
end
end
println()
end
function generate_function_documentation(ctx, n, predicate = (s) -> startswith(s, "helics$n"))
previously_generated = String[]
println("### $n")
println()
println("""```eval_rst""")
println()
for trans_unit in ctx.trans_units
root_cursor = getcursor(trans_unit)
push!(ctx.cursor_stack, root_cursor)
header = spelling(root_cursor)
ctx.children = children(root_cursor)
for (i, cursor) in enumerate(ctx.children)
child_name = name(cursor)
child_header = filename(cursor)
ctx.children_index = i
!startswith(lowercase(child_name), "helics") && continue
s = spelling(cursor)
if cursor isa CLFunctionDecl && predicate(s)
if s ∈ previously_generated
continue
end
println("""
.. doxygenfunction:: $s
:project: helics
""")
push!(previously_generated, s)
end
end
end
println("""```""")
end
function generate_function_documentation(ctx)
println("## Functions")
println("""
1. `Broker`
1. `Core`
1. `Endpoint`
1. `FederateInfo`
1. `Federate`
1. `Filter`
1. `Input`
1. `Message`
1. `Publication`
1. `Query`
""")
println()
println()
generate_function_documentation(ctx, "Broker")
println()
generate_function_documentation(ctx, "Core")
println()
generate_function_documentation(ctx, "Endpoint")
println()
generate_function_documentation(ctx, "FederateInfo")
println()
generate_function_documentation(ctx, "Federate", (s) -> startswith(s, "helicsFederate") && !startswith(s, "helicsFederateInfo"))
println()
generate_function_documentation(ctx, "Filter")
println()
generate_function_documentation(ctx, "Input")
println()
generate_function_documentation(ctx, "Message")
println()
generate_function_documentation(ctx, "Publication")
println()
generate_function_documentation(ctx, "Query")
println()
generate_function_documentation(ctx, "Create")
println()
generate_function_documentation(ctx, "Others", (s) -> !any(startswith.(s, [
"helicsBroker",
"helicsCore",
"helicsEndpoint",
"helicsFederateInfo",
"helicsFederate",
"helicsFilter",
"helicsInput",
"helicsMessage",
"helicsPublication",
"helicsQuery",
"helicsCreate",
])))
end
function main()
LIBHELICS_HEADERS = String[]
for folder in LIBHELICS_INCLUDE
for header in readdir(folder)
if endswith(header, ".h")
push!(LIBHELICS_HEADERS, joinpath(folder, header))
end
end
end
LIBHELICS_ARGS = String[]
for path in LIBHELICS_INCLUDE
push!(LIBHELICS_ARGS, "-I")
push!(LIBHELICS_ARGS, path)
end
# create a work context
ctx = DefaultContext()
# parse headers
parse_headers!(
ctx, LIBHELICS_HEADERS,
args=LIBHELICS_ARGS,
includes=LIBHELICS_INCLUDE,
# recurse=true,
)
generate_enum_documentation(ctx)
generate_function_documentation(ctx)
end

Enum

helics_core_type

.. doxygenenumvalue:: helics_core_type_default
    :project: helics

.. doxygenenumvalue:: helics_core_type_zmq
    :project: helics

.. doxygenenumvalue:: helics_core_type_mpi
    :project: helics

.. doxygenenumvalue:: helics_core_type_test
    :project: helics

.. doxygenenumvalue:: helics_core_type_interprocess
    :project: helics

.. doxygenenumvalue:: helics_core_type_ipc
    :project: helics

.. doxygenenumvalue:: helics_core_type_tcp
    :project: helics

.. doxygenenumvalue:: helics_core_type_udp
    :project: helics

.. doxygenenumvalue:: helics_core_type_zmq_test
    :project: helics

.. doxygenenumvalue:: helics_core_type_nng
    :project: helics

.. doxygenenumvalue:: helics_core_type_tcp_ss
    :project: helics

.. doxygenenumvalue:: helics_core_type_http
    :project: helics

.. doxygenenumvalue:: helics_core_type_websocket
    :project: helics

.. doxygenenumvalue:: helics_core_type_inproc
    :project: helics

.. doxygenenumvalue:: helics_core_type_null
    :project: helics

helics_data_type

.. doxygenenumvalue:: helics_data_type_string
    :project: helics

.. doxygenenumvalue:: helics_data_type_double
    :project: helics

.. doxygenenumvalue:: helics_data_type_int
    :project: helics

.. doxygenenumvalue:: helics_data_type_complex
    :project: helics

.. doxygenenumvalue:: helics_data_type_vector
    :project: helics

.. doxygenenumvalue:: helics_data_type_complex_vector
    :project: helics

.. doxygenenumvalue:: helics_data_type_named_point
    :project: helics

.. doxygenenumvalue:: helics_data_type_boolean
    :project: helics

.. doxygenenumvalue:: helics_data_type_time
    :project: helics

.. doxygenenumvalue:: helics_data_type_raw
    :project: helics

.. doxygenenumvalue:: helics_data_type_any
    :project: helics

helics_federate_flags

.. doxygenenumvalue:: helics_flag_observer
    :project: helics

.. doxygenenumvalue:: helics_flag_uninterruptible
    :project: helics

.. doxygenenumvalue:: helics_flag_interruptible
    :project: helics

.. doxygenenumvalue:: helics_flag_source_only
    :project: helics

.. doxygenenumvalue:: helics_flag_only_transmit_on_change
    :project: helics

.. doxygenenumvalue:: helics_flag_only_update_on_change
    :project: helics

.. doxygenenumvalue:: helics_flag_wait_for_current_time_update
    :project: helics

.. doxygenenumvalue:: helics_flag_restrictive_time_policy
    :project: helics

.. doxygenenumvalue:: helics_flag_rollback
    :project: helics

.. doxygenenumvalue:: helics_flag_forward_compute
    :project: helics

.. doxygenenumvalue:: helics_flag_realtime
    :project: helics

.. doxygenenumvalue:: helics_flag_single_thread_federate
    :project: helics

.. doxygenenumvalue:: helics_flag_slow_responding
    :project: helics

.. doxygenenumvalue:: helics_flag_delay_init_entry
    :project: helics

.. doxygenenumvalue:: helics_flag_enable_init_entry
    :project: helics

.. doxygenenumvalue:: helics_flag_ignore_time_mismatch_warnings
    :project: helics

.. doxygenenumvalue:: helics_flag_terminate_on_error
    :project: helics

helics_log_levels

.. doxygenenumvalue:: helics_log_level_no_print
    :project: helics

.. doxygenenumvalue:: helics_log_level_error
    :project: helics

.. doxygenenumvalue:: helics_log_level_warning
    :project: helics

.. doxygenenumvalue:: helics_log_level_summary
    :project: helics

.. doxygenenumvalue:: helics_log_level_connections
    :project: helics

.. doxygenenumvalue:: helics_log_level_interfaces
    :project: helics

.. doxygenenumvalue:: helics_log_level_timing
    :project: helics

.. doxygenenumvalue:: helics_log_level_data
    :project: helics

.. doxygenenumvalue:: helics_log_level_trace
    :project: helics

helics_error_types

.. doxygenenumvalue:: helics_error_fatal
    :project: helics

.. doxygenenumvalue:: helics_error_external_type
    :project: helics

.. doxygenenumvalue:: helics_error_other
    :project: helics

.. doxygenenumvalue:: helics_error_insufficient_space
    :project: helics

.. doxygenenumvalue:: helics_error_execution_failure
    :project: helics

.. doxygenenumvalue:: helics_error_invalid_function_call
    :project: helics

.. doxygenenumvalue:: helics_error_invalid_state_transition
    :project: helics

.. doxygenenumvalue:: helics_warning
    :project: helics

.. doxygenenumvalue:: helics_error_system_failure
    :project: helics

.. doxygenenumvalue:: helics_error_discard
    :project: helics

.. doxygenenumvalue:: helics_error_invalid_argument
    :project: helics

.. doxygenenumvalue:: helics_error_invalid_object
    :project: helics

.. doxygenenumvalue:: helics_error_connection_failure
    :project: helics

.. doxygenenumvalue:: helics_error_registration_failure
    :project: helics

.. doxygenenumvalue:: helics_ok
    :project: helics

helics_properties

.. doxygenenumvalue:: helics_property_time_delta
    :project: helics

.. doxygenenumvalue:: helics_property_time_period
    :project: helics

.. doxygenenumvalue:: helics_property_time_offset
    :project: helics

.. doxygenenumvalue:: helics_property_time_rt_lag
    :project: helics

.. doxygenenumvalue:: helics_property_time_rt_lead
    :project: helics

.. doxygenenumvalue:: helics_property_time_rt_tolerance
    :project: helics

.. doxygenenumvalue:: helics_property_time_input_delay
    :project: helics

.. doxygenenumvalue:: helics_property_time_output_delay
    :project: helics

.. doxygenenumvalue:: helics_property_int_max_iterations
    :project: helics

.. doxygenenumvalue:: helics_property_int_log_level
    :project: helics

.. doxygenenumvalue:: helics_property_int_file_log_level
    :project: helics

.. doxygenenumvalue:: helics_property_int_console_log_level
    :project: helics

helics_handle_options

.. doxygenenumvalue:: helics_handle_option_connection_required
    :project: helics

.. doxygenenumvalue:: helics_handle_option_connection_optional
    :project: helics

.. doxygenenumvalue:: helics_handle_option_single_connection_only
    :project: helics

.. doxygenenumvalue:: helics_handle_option_multiple_connections_allowed
    :project: helics

.. doxygenenumvalue:: helics_handle_option_buffer_data
    :project: helics

.. doxygenenumvalue:: helics_handle_option_strict_type_checking
    :project: helics

.. doxygenenumvalue:: helics_handle_option_ignore_unit_mismatch
    :project: helics

.. doxygenenumvalue:: helics_handle_option_only_transmit_on_change
    :project: helics

.. doxygenenumvalue:: helics_handle_option_only_update_on_change
    :project: helics

.. doxygenenumvalue:: helics_handle_option_ignore_interrupts
    :project: helics

helics_filter_type

.. doxygenenumvalue:: helics_filter_type_custom
    :project: helics

.. doxygenenumvalue:: helics_filter_type_delay
    :project: helics

.. doxygenenumvalue:: helics_filter_type_random_delay
    :project: helics

.. doxygenenumvalue:: helics_filter_type_random_drop
    :project: helics

.. doxygenenumvalue:: helics_filter_type_reroute
    :project: helics

.. doxygenenumvalue:: helics_filter_type_clone
    :project: helics

.. doxygenenumvalue:: helics_filter_type_firewall
    :project: helics

helics_iteration_request

.. doxygenenumvalue:: helics_iteration_request_no_iteration
    :project: helics

.. doxygenenumvalue:: helics_iteration_request_force_iteration
    :project: helics

.. doxygenenumvalue:: helics_iteration_request_iterate_if_needed
    :project: helics

helics_iteration_result

.. doxygenenumvalue:: helics_iteration_result_next_step
    :project: helics

.. doxygenenumvalue:: helics_iteration_result_error
    :project: helics

.. doxygenenumvalue:: helics_iteration_result_halted
    :project: helics

.. doxygenenumvalue:: helics_iteration_result_iterating
    :project: helics

helics_federate_state

.. doxygenenumvalue:: helics_state_startup
    :project: helics

.. doxygenenumvalue:: helics_state_initialization
    :project: helics

.. doxygenenumvalue:: helics_state_execution
    :project: helics

.. doxygenenumvalue:: helics_state_finalize
    :project: helics

.. doxygenenumvalue:: helics_state_error
    :project: helics

.. doxygenenumvalue:: helics_state_pending_init
    :project: helics

.. doxygenenumvalue:: helics_state_pending_exec
    :project: helics

.. doxygenenumvalue:: helics_state_pending_time
    :project: helics

.. doxygenenumvalue:: helics_state_pending_iterative_time
    :project: helics

.. doxygenenumvalue:: helics_state_pending_finalize
    :project: helics

Functions

  1. Broker
  2. Core
  3. Endpoint
  4. FederateInfo
  5. Federate
  6. Filter
  7. Input
  8. Message
  9. Publication
  10. Query

Broker


.. doxygenfunction:: helicsBrokerClone
    :project: helics

.. doxygenfunction:: helicsBrokerIsValid
    :project: helics

.. doxygenfunction:: helicsBrokerIsConnected
    :project: helics

.. doxygenfunction:: helicsBrokerDataLink
    :project: helics

.. doxygenfunction:: helicsBrokerAddSourceFilterToEndpoint
    :project: helics

.. doxygenfunction:: helicsBrokerAddDestinationFilterToEndpoint
    :project: helics

.. doxygenfunction:: helicsBrokerMakeConnections
    :project: helics

.. doxygenfunction:: helicsBrokerWaitForDisconnect
    :project: helics

.. doxygenfunction:: helicsBrokerGetIdentifier
    :project: helics

.. doxygenfunction:: helicsBrokerGetAddress
    :project: helics

.. doxygenfunction:: helicsBrokerDisconnect
    :project: helics

.. doxygenfunction:: helicsBrokerDestroy
    :project: helics

.. doxygenfunction:: helicsBrokerFree
    :project: helics

.. doxygenfunction:: helicsBrokerSetGlobal
    :project: helics

.. doxygenfunction:: helicsBrokerSetLogFile
    :project: helics

.. doxygenfunction:: helicsBrokerSetLoggingCallback
    :project: helics

Core


.. doxygenfunction:: helicsCoreClone
    :project: helics

.. doxygenfunction:: helicsCoreIsValid
    :project: helics

.. doxygenfunction:: helicsCoreWaitForDisconnect
    :project: helics

.. doxygenfunction:: helicsCoreIsConnected
    :project: helics

.. doxygenfunction:: helicsCoreDataLink
    :project: helics

.. doxygenfunction:: helicsCoreAddSourceFilterToEndpoint
    :project: helics

.. doxygenfunction:: helicsCoreAddDestinationFilterToEndpoint
    :project: helics

.. doxygenfunction:: helicsCoreMakeConnections
    :project: helics

.. doxygenfunction:: helicsCoreGetIdentifier
    :project: helics

.. doxygenfunction:: helicsCoreGetAddress
    :project: helics

.. doxygenfunction:: helicsCoreSetReadyToInit
    :project: helics

.. doxygenfunction:: helicsCoreConnect
    :project: helics

.. doxygenfunction:: helicsCoreDisconnect
    :project: helics

.. doxygenfunction:: helicsCoreDestroy
    :project: helics

.. doxygenfunction:: helicsCoreFree
    :project: helics

.. doxygenfunction:: helicsCoreSetGlobal
    :project: helics

.. doxygenfunction:: helicsCoreSetLogFile
    :project: helics

.. doxygenfunction:: helicsCoreRegisterFilter
    :project: helics

.. doxygenfunction:: helicsCoreRegisterCloningFilter
    :project: helics

.. doxygenfunction:: helicsCoreSetLoggingCallback
    :project: helics

Endpoint


.. doxygenfunction:: helicsEndpointIsValid
    :project: helics

.. doxygenfunction:: helicsEndpointSetDefaultDestination
    :project: helics

.. doxygenfunction:: helicsEndpointGetDefaultDestination
    :project: helics

.. doxygenfunction:: helicsEndpointSendMessageRaw
    :project: helics

.. doxygenfunction:: helicsEndpointSendEventRaw
    :project: helics

.. doxygenfunction:: helicsEndpointSendMessage
    :project: helics

.. doxygenfunction:: helicsEndpointSendMessageObject
    :project: helics

.. doxygenfunction:: helicsEndpointSendMessageObjectZeroCopy
    :project: helics

.. doxygenfunction:: helicsEndpointSubscribe
    :project: helics

.. doxygenfunction:: helicsEndpointHasMessage
    :project: helics

.. doxygenfunction:: helicsEndpointPendingMessages
    :project: helics

.. doxygenfunction:: helicsEndpointGetMessage
    :project: helics

.. doxygenfunction:: helicsEndpointGetMessageObject
    :project: helics

.. doxygenfunction:: helicsEndpointClearMessages
    :project: helics

.. doxygenfunction:: helicsEndpointGetType
    :project: helics

.. doxygenfunction:: helicsEndpointGetName
    :project: helics

.. doxygenfunction:: helicsEndpointGetInfo
    :project: helics

.. doxygenfunction:: helicsEndpointSetInfo
    :project: helics

.. doxygenfunction:: helicsEndpointSetOption
    :project: helics

.. doxygenfunction:: helicsEndpointGetOption
    :project: helics

FederateInfo


.. doxygenfunction:: helicsFederateInfoClone
    :project: helics

.. doxygenfunction:: helicsFederateInfoLoadFromArgs
    :project: helics

.. doxygenfunction:: helicsFederateInfoFree
    :project: helics

.. doxygenfunction:: helicsFederateInfoSetCoreName
    :project: helics

.. doxygenfunction:: helicsFederateInfoSetCoreInitString
    :project: helics

.. doxygenfunction:: helicsFederateInfoSetBrokerInitString
    :project: helics

.. doxygenfunction:: helicsFederateInfoSetCoreType
    :project: helics

.. doxygenfunction:: helicsFederateInfoSetCoreTypeFromString
    :project: helics

.. doxygenfunction:: helicsFederateInfoSetBroker
    :project: helics

.. doxygenfunction:: helicsFederateInfoSetBrokerKey
    :project: helics

.. doxygenfunction:: helicsFederateInfoSetBrokerPort
    :project: helics

.. doxygenfunction:: helicsFederateInfoSetLocalPort
    :project: helics

.. doxygenfunction:: helicsFederateInfoSetFlagOption
    :project: helics

.. doxygenfunction:: helicsFederateInfoSetSeparator
    :project: helics

.. doxygenfunction:: helicsFederateInfoSetTimeProperty
    :project: helics

.. doxygenfunction:: helicsFederateInfoSetIntegerProperty
    :project: helics

Federate


.. doxygenfunction:: helicsFederateDestroy
    :project: helics

.. doxygenfunction:: helicsFederateClone
    :project: helics

.. doxygenfunction:: helicsFederateIsValid
    :project: helics

.. doxygenfunction:: helicsFederateRegisterInterfaces
    :project: helics

.. doxygenfunction:: helicsFederateGlobalError
    :project: helics

.. doxygenfunction:: helicsFederateLocalError
    :project: helics

.. doxygenfunction:: helicsFederateFinalize
    :project: helics

.. doxygenfunction:: helicsFederateFinalizeAsync
    :project: helics

.. doxygenfunction:: helicsFederateFinalizeComplete
    :project: helics

.. doxygenfunction:: helicsFederateFree
    :project: helics

.. doxygenfunction:: helicsFederateEnterInitializingMode
    :project: helics

.. doxygenfunction:: helicsFederateEnterInitializingModeAsync
    :project: helics

.. doxygenfunction:: helicsFederateIsAsyncOperationCompleted
    :project: helics

.. doxygenfunction:: helicsFederateEnterInitializingModeComplete
    :project: helics

.. doxygenfunction:: helicsFederateEnterExecutingMode
    :project: helics

.. doxygenfunction:: helicsFederateEnterExecutingModeAsync
    :project: helics

.. doxygenfunction:: helicsFederateEnterExecutingModeComplete
    :project: helics

.. doxygenfunction:: helicsFederateEnterExecutingModeIterative
    :project: helics

.. doxygenfunction:: helicsFederateEnterExecutingModeIterativeAsync
    :project: helics

.. doxygenfunction:: helicsFederateEnterExecutingModeIterativeComplete
    :project: helics

.. doxygenfunction:: helicsFederateGetState
    :project: helics

.. doxygenfunction:: helicsFederateGetCoreObject
    :project: helics

.. doxygenfunction:: helicsFederateRequestTime
    :project: helics

.. doxygenfunction:: helicsFederateRequestTimeAdvance
    :project: helics

.. doxygenfunction:: helicsFederateRequestNextStep
    :project: helics

.. doxygenfunction:: helicsFederateRequestTimeIterative
    :project: helics

.. doxygenfunction:: helicsFederateRequestTimeAsync
    :project: helics

.. doxygenfunction:: helicsFederateRequestTimeComplete
    :project: helics

.. doxygenfunction:: helicsFederateRequestTimeIterativeAsync
    :project: helics

.. doxygenfunction:: helicsFederateRequestTimeIterativeComplete
    :project: helics

.. doxygenfunction:: helicsFederateGetName
    :project: helics

.. doxygenfunction:: helicsFederateSetTimeProperty
    :project: helics

.. doxygenfunction:: helicsFederateSetFlagOption
    :project: helics

.. doxygenfunction:: helicsFederateSetSeparator
    :project: helics

.. doxygenfunction:: helicsFederateSetIntegerProperty
    :project: helics

.. doxygenfunction:: helicsFederateGetTimeProperty
    :project: helics

.. doxygenfunction:: helicsFederateGetFlagOption
    :project: helics

.. doxygenfunction:: helicsFederateGetIntegerProperty
    :project: helics

.. doxygenfunction:: helicsFederateGetCurrentTime
    :project: helics

.. doxygenfunction:: helicsFederateSetGlobal
    :project: helics

.. doxygenfunction:: helicsFederateAddDependency
    :project: helics

.. doxygenfunction:: helicsFederateSetLogFile
    :project: helics

.. doxygenfunction:: helicsFederateLogErrorMessage
    :project: helics

.. doxygenfunction:: helicsFederateLogWarningMessage
    :project: helics

.. doxygenfunction:: helicsFederateLogInfoMessage
    :project: helics

.. doxygenfunction:: helicsFederateLogDebugMessage
    :project: helics

.. doxygenfunction:: helicsFederateLogLevelMessage
    :project: helics

.. doxygenfunction:: helicsFederateRegisterEndpoint
    :project: helics

.. doxygenfunction:: helicsFederateRegisterGlobalEndpoint
    :project: helics

.. doxygenfunction:: helicsFederateGetEndpoint
    :project: helics

.. doxygenfunction:: helicsFederateGetEndpointByIndex
    :project: helics

.. doxygenfunction:: helicsFederateHasMessage
    :project: helics

.. doxygenfunction:: helicsFederatePendingMessages
    :project: helics

.. doxygenfunction:: helicsFederateGetMessage
    :project: helics

.. doxygenfunction:: helicsFederateGetMessageObject
    :project: helics

.. doxygenfunction:: helicsFederateCreateMessageObject
    :project: helics

.. doxygenfunction:: helicsFederateClearMessages
    :project: helics

.. doxygenfunction:: helicsFederateGetEndpointCount
    :project: helics

.. doxygenfunction:: helicsFederateRegisterFilter
    :project: helics

.. doxygenfunction:: helicsFederateRegisterGlobalFilter
    :project: helics

.. doxygenfunction:: helicsFederateRegisterCloningFilter
    :project: helics

.. doxygenfunction:: helicsFederateRegisterGlobalCloningFilter
    :project: helics

.. doxygenfunction:: helicsFederateGetFilterCount
    :project: helics

.. doxygenfunction:: helicsFederateGetFilter
    :project: helics

.. doxygenfunction:: helicsFederateGetFilterByIndex
    :project: helics

.. doxygenfunction:: helicsFederateRegisterSubscription
    :project: helics

.. doxygenfunction:: helicsFederateRegisterPublication
    :project: helics

.. doxygenfunction:: helicsFederateRegisterTypePublication
    :project: helics

.. doxygenfunction:: helicsFederateRegisterGlobalPublication
    :project: helics

.. doxygenfunction:: helicsFederateRegisterGlobalTypePublication
    :project: helics

.. doxygenfunction:: helicsFederateRegisterInput
    :project: helics

.. doxygenfunction:: helicsFederateRegisterTypeInput
    :project: helics

.. doxygenfunction:: helicsFederateRegisterGlobalInput
    :project: helics

.. doxygenfunction:: helicsFederateRegisterGlobalTypeInput
    :project: helics

.. doxygenfunction:: helicsFederateGetPublication
    :project: helics

.. doxygenfunction:: helicsFederateGetPublicationByIndex
    :project: helics

.. doxygenfunction:: helicsFederateGetInput
    :project: helics

.. doxygenfunction:: helicsFederateGetInputByIndex
    :project: helics

.. doxygenfunction:: helicsFederateGetSubscription
    :project: helics

.. doxygenfunction:: helicsFederateClearUpdates
    :project: helics

.. doxygenfunction:: helicsFederateRegisterFromPublicationJSON
    :project: helics

.. doxygenfunction:: helicsFederatePublishJSON
    :project: helics

.. doxygenfunction:: helicsFederateGetPublicationCount
    :project: helics

.. doxygenfunction:: helicsFederateGetInputCount
    :project: helics

.. doxygenfunction:: helicsFederateSetLoggingCallback
    :project: helics

Filter


.. doxygenfunction:: helicsFilterIsValid
    :project: helics

.. doxygenfunction:: helicsFilterGetName
    :project: helics

.. doxygenfunction:: helicsFilterSet
    :project: helics

.. doxygenfunction:: helicsFilterSetString
    :project: helics

.. doxygenfunction:: helicsFilterAddDestinationTarget
    :project: helics

.. doxygenfunction:: helicsFilterAddSourceTarget
    :project: helics

.. doxygenfunction:: helicsFilterAddDeliveryEndpoint
    :project: helics

.. doxygenfunction:: helicsFilterRemoveTarget
    :project: helics

.. doxygenfunction:: helicsFilterRemoveDeliveryEndpoint
    :project: helics

.. doxygenfunction:: helicsFilterGetInfo
    :project: helics

.. doxygenfunction:: helicsFilterSetInfo
    :project: helics

.. doxygenfunction:: helicsFilterSetOption
    :project: helics

.. doxygenfunction:: helicsFilterGetOption
    :project: helics

.. doxygenfunction:: helicsFilterSetCustomCallback
    :project: helics

Input


.. doxygenfunction:: helicsInputIsValid
    :project: helics

.. doxygenfunction:: helicsInputAddTarget
    :project: helics

.. doxygenfunction:: helicsInputGetRawValueSize
    :project: helics

.. doxygenfunction:: helicsInputGetRawValue
    :project: helics

.. doxygenfunction:: helicsInputGetStringSize
    :project: helics

.. doxygenfunction:: helicsInputGetString
    :project: helics

.. doxygenfunction:: helicsInputGetInteger
    :project: helics

.. doxygenfunction:: helicsInputGetBoolean
    :project: helics

.. doxygenfunction:: helicsInputGetDouble
    :project: helics

.. doxygenfunction:: helicsInputGetTime
    :project: helics

.. doxygenfunction:: helicsInputGetChar
    :project: helics

.. doxygenfunction:: helicsInputGetComplexObject
    :project: helics

.. doxygenfunction:: helicsInputGetComplex
    :project: helics

.. doxygenfunction:: helicsInputGetVectorSize
    :project: helics

.. doxygenfunction:: helicsInputGetVector
    :project: helics

.. doxygenfunction:: helicsInputGetNamedPoint
    :project: helics

.. doxygenfunction:: helicsInputSetDefaultRaw
    :project: helics

.. doxygenfunction:: helicsInputSetDefaultString
    :project: helics

.. doxygenfunction:: helicsInputSetDefaultInteger
    :project: helics

.. doxygenfunction:: helicsInputSetDefaultBoolean
    :project: helics

.. doxygenfunction:: helicsInputSetDefaultTime
    :project: helics

.. doxygenfunction:: helicsInputSetDefaultChar
    :project: helics

.. doxygenfunction:: helicsInputSetDefaultDouble
    :project: helics

.. doxygenfunction:: helicsInputSetDefaultComplex
    :project: helics

.. doxygenfunction:: helicsInputSetDefaultVector
    :project: helics

.. doxygenfunction:: helicsInputSetDefaultNamedPoint
    :project: helics

.. doxygenfunction:: helicsInputGetType
    :project: helics

.. doxygenfunction:: helicsInputGetPublicationType
    :project: helics

.. doxygenfunction:: helicsInputGetKey
    :project: helics

.. doxygenfunction:: helicsInputGetUnits
    :project: helics

.. doxygenfunction:: helicsInputGetInjectionUnits
    :project: helics

.. doxygenfunction:: helicsInputGetExtractionUnits
    :project: helics

.. doxygenfunction:: helicsInputGetInfo
    :project: helics

.. doxygenfunction:: helicsInputSetInfo
    :project: helics

.. doxygenfunction:: helicsInputGetOption
    :project: helics

.. doxygenfunction:: helicsInputSetOption
    :project: helics

.. doxygenfunction:: helicsInputSetMinimumChange
    :project: helics

.. doxygenfunction:: helicsInputIsUpdated
    :project: helics

.. doxygenfunction:: helicsInputLastUpdateTime
    :project: helics

.. doxygenfunction:: helicsInputClearUpdate
    :project: helics

Message


.. doxygenfunction:: helicsMessageGetSource
    :project: helics

.. doxygenfunction:: helicsMessageGetDestination
    :project: helics

.. doxygenfunction:: helicsMessageGetOriginalSource
    :project: helics

.. doxygenfunction:: helicsMessageGetOriginalDestination
    :project: helics

.. doxygenfunction:: helicsMessageGetTime
    :project: helics

.. doxygenfunction:: helicsMessageGetString
    :project: helics

.. doxygenfunction:: helicsMessageGetMessageID
    :project: helics

.. doxygenfunction:: helicsMessageCheckFlag
    :project: helics

.. doxygenfunction:: helicsMessageGetRawDataSize
    :project: helics

.. doxygenfunction:: helicsMessageGetRawData
    :project: helics

.. doxygenfunction:: helicsMessageGetRawDataPointer
    :project: helics

.. doxygenfunction:: helicsMessageIsValid
    :project: helics

.. doxygenfunction:: helicsMessageSetSource
    :project: helics

.. doxygenfunction:: helicsMessageSetDestination
    :project: helics

.. doxygenfunction:: helicsMessageSetOriginalSource
    :project: helics

.. doxygenfunction:: helicsMessageSetOriginalDestination
    :project: helics

.. doxygenfunction:: helicsMessageSetTime
    :project: helics

.. doxygenfunction:: helicsMessageResize
    :project: helics

.. doxygenfunction:: helicsMessageReserve
    :project: helics

.. doxygenfunction:: helicsMessageSetMessageID
    :project: helics

.. doxygenfunction:: helicsMessageClearFlags
    :project: helics

.. doxygenfunction:: helicsMessageSetFlagOption
    :project: helics

.. doxygenfunction:: helicsMessageSetString
    :project: helics

.. doxygenfunction:: helicsMessageSetData
    :project: helics

.. doxygenfunction:: helicsMessageAppendData
    :project: helics

.. doxygenfunction:: helicsMessageCopy
    :project: helics

Publication


.. doxygenfunction:: helicsPublicationIsValid
    :project: helics

.. doxygenfunction:: helicsPublicationPublishRaw
    :project: helics

.. doxygenfunction:: helicsPublicationPublishString
    :project: helics

.. doxygenfunction:: helicsPublicationPublishInteger
    :project: helics

.. doxygenfunction:: helicsPublicationPublishBoolean
    :project: helics

.. doxygenfunction:: helicsPublicationPublishDouble
    :project: helics

.. doxygenfunction:: helicsPublicationPublishTime
    :project: helics

.. doxygenfunction:: helicsPublicationPublishChar
    :project: helics

.. doxygenfunction:: helicsPublicationPublishComplex
    :project: helics

.. doxygenfunction:: helicsPublicationPublishVector
    :project: helics

.. doxygenfunction:: helicsPublicationPublishNamedPoint
    :project: helics

.. doxygenfunction:: helicsPublicationAddTarget
    :project: helics

.. doxygenfunction:: helicsPublicationGetType
    :project: helics

.. doxygenfunction:: helicsPublicationGetKey
    :project: helics

.. doxygenfunction:: helicsPublicationGetUnits
    :project: helics

.. doxygenfunction:: helicsPublicationGetInfo
    :project: helics

.. doxygenfunction:: helicsPublicationSetInfo
    :project: helics

.. doxygenfunction:: helicsPublicationGetOption
    :project: helics

.. doxygenfunction:: helicsPublicationSetOption
    :project: helics

.. doxygenfunction:: helicsPublicationSetMinimumChange
    :project: helics

Query


.. doxygenfunction:: helicsQueryExecute
    :project: helics

.. doxygenfunction:: helicsQueryCoreExecute
    :project: helics

.. doxygenfunction:: helicsQueryBrokerExecute
    :project: helics

.. doxygenfunction:: helicsQueryExecuteAsync
    :project: helics

.. doxygenfunction:: helicsQueryExecuteComplete
    :project: helics

.. doxygenfunction:: helicsQueryIsCompleted
    :project: helics

.. doxygenfunction:: helicsQueryFree
    :project: helics

Create


.. doxygenfunction:: helicsCreateCore
    :project: helics

.. doxygenfunction:: helicsCreateCoreFromArgs
    :project: helics

.. doxygenfunction:: helicsCreateBroker
    :project: helics

.. doxygenfunction:: helicsCreateBrokerFromArgs
    :project: helics

.. doxygenfunction:: helicsCreateValueFederate
    :project: helics

.. doxygenfunction:: helicsCreateValueFederateFromConfig
    :project: helics

.. doxygenfunction:: helicsCreateMessageFederate
    :project: helics

.. doxygenfunction:: helicsCreateMessageFederateFromConfig
    :project: helics

.. doxygenfunction:: helicsCreateCombinationFederate
    :project: helics

.. doxygenfunction:: helicsCreateCombinationFederateFromConfig
    :project: helics

.. doxygenfunction:: helicsCreateFederateInfo
    :project: helics

.. doxygenfunction:: helicsCreateQuery
    :project: helics

Others


.. doxygenfunction:: helicsGetVersion
    :project: helics

.. doxygenfunction:: helicsErrorInitialize
    :project: helics

.. doxygenfunction:: helicsErrorClear
    :project: helics

.. doxygenfunction:: helicsIsCoreTypeAvailable
    :project: helics

.. doxygenfunction:: helicsGetFederateByName
    :project: helics

.. doxygenfunction:: helicsGetPropertyIndex
    :project: helics

.. doxygenfunction:: helicsGetOptionIndex
    :project: helics

.. doxygenfunction:: helicsCloseLibrary
    :project: helics

.. doxygenfunction:: helicsCleanupLibrary
    :project: helics

.. doxygenfunction:: helicsSubscriptionGetKey
    :project: helics

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment