helics  2.8.1
MessageFederate.h
Go to the documentation of this file.
1 /*
2 Copyright (c) 2017-2021,
3 Battelle Memorial Institute; Lawrence Livermore National Security, LLC; Alliance for Sustainable Energy, LLC. See the top-level NOTICE for
4 additional details. All rights reserved.
5 SPDX-License-Identifier: BSD-3-Clause
6 */
7 
13 #ifndef HELICS_APISHARED_MESSAGE_FEDERATE_FUNCTIONS_H_
14 #define HELICS_APISHARED_MESSAGE_FEDERATE_FUNCTIONS_H_
15 
16 #include "helics.h"
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
22 /* MessageFederate Calls*/
23 
43 HELICS_EXPORT helics_endpoint helicsFederateRegisterEndpoint(helics_federate fed, const char* name, const char* type, helics_error* err);
44 
64  const char* name,
65  const char* type,
66  helics_error* err);
67 
82 HELICS_EXPORT helics_endpoint helicsFederateGetEndpoint(helics_federate fed, const char* name, helics_error* err);
83 
99 
107 HELICS_EXPORT helics_bool helicsEndpointIsValid(helics_endpoint endpoint);
108 
118 HELICS_EXPORT void helicsEndpointSetDefaultDestination(helics_endpoint endpoint, const char* dst, helics_error* err);
119 
127 HELICS_EXPORT const char* helicsEndpointGetDefaultDestination(helics_endpoint endpoint);
128 
146 HELICS_EXPORT void
147  helicsEndpointSendMessageRaw(helics_endpoint endpoint, const char* dst, const void* data, int inputDataLength, helics_error* err);
148 
169 HELICS_EXPORT void helicsEndpointSendEventRaw(helics_endpoint endpoint,
170  const char* dst,
171  const void* data,
172  int inputDataLength,
173  helics_time time,
174  helics_error* err);
175 
186 HELICS_DEPRECATED_EXPORT void helicsEndpointSendMessage(helics_endpoint endpoint, helics_message* message, helics_error* err);
187 
197 HELICS_EXPORT void helicsEndpointSendMessageObject(helics_endpoint endpoint, helics_message_object message, helics_error* err);
198 
210 
220 HELICS_EXPORT void helicsEndpointSubscribe(helics_endpoint endpoint, const char* key, helics_error* err);
221 
230 
239 
246 HELICS_DEPRECATED_EXPORT int helicsFederatePendingMessages(helics_federate fed);
247 
254 
261 HELICS_DEPRECATED_EXPORT int helicsEndpointPendingMessages(helics_endpoint endpoint);
262 
268 HELICS_EXPORT int helicsEndpointPendingMessageCount(helics_endpoint endpoint);
269 
280 HELICS_DEPRECATED_EXPORT helics_message helicsEndpointGetMessage(helics_endpoint endpoint);
281 
290 
304 
318 
329 
343 
352 
362 HELICS_DEPRECATED_EXPORT void helicsEndpointClearMessages(helics_endpoint endpoint);
363 
371 HELICS_EXPORT const char* helicsEndpointGetType(helics_endpoint endpoint);
372 
380 HELICS_EXPORT const char* helicsEndpointGetName(helics_endpoint endpoint);
381 
390 
398 HELICS_EXPORT const char* helicsEndpointGetInfo(helics_endpoint end);
399 
409 HELICS_EXPORT void helicsEndpointSetInfo(helics_endpoint endpoint, const char* info, helics_error* err);
410 
421 HELICS_EXPORT void helicsEndpointSetOption(helics_endpoint endpoint, int option, int value, helics_error* err);
422 
430 HELICS_EXPORT int helicsEndpointGetOption(helics_endpoint endpoint, int option);
431 
445 HELICS_EXPORT const char* helicsMessageGetSource(helics_message_object message);
446 
454 HELICS_EXPORT const char* helicsMessageGetDestination(helics_message_object message);
455 
463 HELICS_EXPORT const char* helicsMessageGetOriginalSource(helics_message_object message);
464 
472 HELICS_EXPORT const char* helicsMessageGetOriginalDestination(helics_message_object message);
473 
482 
490 HELICS_EXPORT const char* helicsMessageGetString(helics_message_object message);
491 
499 HELICS_EXPORT int helicsMessageGetMessageID(helics_message_object message);
500 
509 HELICS_EXPORT helics_bool helicsMessageCheckFlag(helics_message_object message, int flag);
510 
518 HELICS_EXPORT int helicsMessageGetRawDataSize(helics_message_object message);
519 
535 HELICS_EXPORT void
536  helicsMessageGetRawData(helics_message_object message, void* data, int maxMessageLength, int* actualSize, helics_error* err);
537 
545 HELICS_EXPORT void* helicsMessageGetRawDataPointer(helics_message_object message);
546 
555 
565 HELICS_EXPORT void helicsMessageSetSource(helics_message_object message, const char* src, helics_error* err);
566 
576 HELICS_EXPORT void helicsMessageSetDestination(helics_message_object message, const char* dst, helics_error* err);
577 
587 HELICS_EXPORT void helicsMessageSetOriginalSource(helics_message_object message, const char* src, helics_error* err);
588 
598 HELICS_EXPORT void helicsMessageSetOriginalDestination(helics_message_object message, const char* dst, helics_error* err);
599 
609 HELICS_EXPORT void helicsMessageSetTime(helics_message_object message, helics_time time, helics_error* err);
610 
623 HELICS_EXPORT void helicsMessageResize(helics_message_object message, int newSize, helics_error* err);
624 
636 HELICS_EXPORT void helicsMessageReserve(helics_message_object message, int reserveSize, helics_error* err);
637 
649 HELICS_EXPORT void helicsMessageSetMessageID(helics_message_object message, int32_t messageID, helics_error* err);
650 
656 HELICS_EXPORT void helicsMessageClearFlags(helics_message_object message);
657 
668 HELICS_EXPORT void helicsMessageSetFlagOption(helics_message_object message, int flag, helics_bool flagValue, helics_error* err);
669 
679 HELICS_EXPORT void helicsMessageSetString(helics_message_object message, const char* str, helics_error* err);
680 
691 HELICS_EXPORT void helicsMessageSetData(helics_message_object message, const void* data, int inputDataLength, helics_error* err);
692 
703 HELICS_EXPORT void helicsMessageAppendData(helics_message_object message, const void* data, int inputDataLength, helics_error* err);
704 
714 HELICS_EXPORT void helicsMessageCopy(helics_message_object src_message, helics_message_object dst_message, helics_error* err);
715 
725 
733 HELICS_EXPORT void helicsMessageFree(helics_message_object message);
734 
743 HELICS_EXPORT void helicsMessageClear(helics_message_object message, helics_error* err);
744 
746 #ifdef __cplusplus
747 } /* end of extern "C" { */
748 #endif
749 
750 #endif /*HELICS_APISHARED_MESSAGE_FEDERATE_FUNCTIONS_H_*/
helics::MessageFederate::registerKnownCommunicationPath
void registerKnownCommunicationPath(const Endpoint &localEndpoint, const std::string &remoteEndpoint)
Definition: MessageFederate.cpp:233
data
@ data
print timing+data transmissions
Definition: loggingHelper.hpp:30
helics::Federate::currentMode
std::atomic< modes > currentMode
the current state of the simulation
Definition: application_api/Federate.hpp:65
helicsMessageCopy
void helicsMessageCopy(helics_message_object src_message, helics_message_object dst_message, helics_error *err)
Definition: MessageFederateExport.cpp:1022
helicsFederatePendingMessageCount
int helicsFederatePendingMessageCount(helics_federate fed)
Definition: MessageFederateExport.cpp:356
helics::MessageFederate::disconnect
virtual void disconnect() override
Definition: MessageFederate.cpp:84
isMember
bool isMember(const toml::value &element, const std::string &key)
Definition: TomlProcessingFunctions.hpp:148
helicsMessageSetMessageID
void helicsMessageSetMessageID(helics_message_object message, int32_t messageID, helics_error *err)
Definition: MessageFederateExport.cpp:950
helicsFederateHasMessage
helics_bool helicsFederateHasMessage(helics_federate fed)
Definition: MessageFederateExport.cpp:338
helics::MessageFederate::registerEndpoint
Endpoint & registerEndpoint(const std::string &eptName=std::string(), const std::string &type=std::string())
Definition: MessageFederate.cpp:109
helics::Federate::getName
const std::string & getName() const
Definition: application_api/Federate.hpp:546
helicsFederatePendingMessages
HELICS_DEPRECATED_EXPORT int helicsFederatePendingMessages(helics_federate fed)
Definition: MessageFederateExport.cpp:365
helicsMessageGetMessageID
int helicsMessageGetMessageID(helics_message_object message)
Definition: MessageFederateExport.cpp:798
helics::MessageFederate::getMessage
std::unique_ptr< Message > getMessage()
Definition: MessageFederate.cpp:271
helicsEndpointSendMessageObject
void helicsEndpointSendMessageObject(helics_endpoint endpoint, helics_message_object message, helics_error *err)
Definition: MessageFederateExport.cpp:276
helicsFederateGetEndpointByIndex
helics_endpoint helicsFederateGetEndpointByIndex(helics_federate fed, int index, helics_error *err)
Definition: MessageFederateExport.cpp:119
helics::loadFederateInfo
FederateInfo loadFederateInfo(const std::string &configString)
Definition: FederateInfo.cpp:639
helicsMessageSetOriginalDestination
void helicsMessageSetOriginalDestination(helics_message_object message, const char *dst, helics_error *err)
Definition: MessageFederateExport.cpp:905
helicsEndpointPendingMessageCount
int helicsEndpointPendingMessageCount(helics_endpoint endpoint)
Definition: MessageFederateExport.cpp:370
helics::MessageFederate::sendMessage
void sendMessage(const Endpoint &source, const std::string &dest, const char *data, size_t dataLength)
Definition: application_api/MessageFederate.hpp:190
helicsEndpointSetDefaultDestination
void helicsEndpointSetDefaultDestination(helics_endpoint endpoint, const char *dst, helics_error *err)
Definition: MessageFederateExport.cpp:154
helics::MessageFederate::registerMessageInterfaces
void registerMessageInterfaces(const std::string &configString)
Definition: MessageFederate.cpp:129
helicsMessageSetTime
void helicsMessageSetTime(helics_message_object message, helics_time time, helics_error *err)
Definition: MessageFederateExport.cpp:913
helics::Federate::registerFilterInterfaces
void registerFilterInterfaces(const std::string &configString)
Definition: Federate.cpp:798
helicsFederateRegisterEndpoint
helics_endpoint helicsFederateRegisterEndpoint(helics_federate fed, const char *name, const char *type, helics_error *err)
Definition: MessageFederateExport.cpp:48
helics::MessageFederate::registerGlobalEndpoint
Endpoint & registerGlobalEndpoint(const std::string &eptName, const std::string &type=std::string())
Definition: MessageFederate.cpp:117
helicsMessageClearFlags
void helicsMessageClearFlags(helics_message_object message)
Definition: MessageFederateExport.cpp:959
helicsFederateGetMessage
HELICS_DEPRECATED_EXPORT helics_message helicsFederateGetMessage(helics_federate fed)
Definition: MessageFederateExport.cpp:506
helics::iteration_result
iteration_result
Definition: core-types.hpp:81
helics_message_object
void * helics_message_object
Definition: api-data.h:76
helicsMessageClone
helics_message_object helicsMessageClone(helics_message_object message, helics_error *err)
Definition: MessageFederateExport.cpp:1042
helics::Time
TimeRepresentation< count_time< 9 > > Time
Definition: helics-time.hpp:27
loadToml
toml::value loadToml(const std::string &tomlString)
Definition: TomlProcessingFunctions.cpp:22
helics_time
double helics_time
Definition: api-data.h:81
helicsMessageGetOriginalDestination
const char * helicsMessageGetOriginalDestination(helics_message_object message)
Definition: MessageFederateExport.cpp:780
helics::Endpoint::setDefaultDestination
void setDefaultDestination(std::string target)
Definition: Endpoints.hpp:198
helics.h
Common functions for the HELICS C api.
helics::Endpoint
Definition: Endpoints.hpp:18
helics::Endpoint::addDestinationFilter
void addDestinationFilter(const std::string &filterName)
Definition: Endpoints.hpp:193
helicsEndpointSendMessage
HELICS_DEPRECATED_EXPORT void helicsEndpointSendMessage(helics_endpoint endpoint, helics_message *message, helics_error *err)
Definition: MessageFederateExport.cpp:240
helicsEndpointIsValid
helics_bool helicsEndpointIsValid(helics_endpoint endpoint)
Definition: MessageFederateExport.cpp:145
helics::MessageFederate::pendingMessages
uint64_t pendingMessages() const
Definition: MessageFederate.cpp:263
helicsMessageClear
void helicsMessageClear(helics_message_object message, helics_error *err)
Definition: MessageFederateExport.cpp:1013
helicsEndpointSendEventRaw
void helicsEndpointSendEventRaw(helics_endpoint endpoint, const char *dst, const void *data, int inputDataLength, helics_time time, helics_error *err)
Definition: MessageFederateExport.cpp:207
helicsMessageSetFlagOption
void helicsMessageSetFlagOption(helics_message_object message, int flag, helics_bool flagValue, helics_error *err)
Definition: MessageFederateExport.cpp:968
helicsFederateRegisterGlobalEndpoint
helics_endpoint helicsFederateRegisterGlobalEndpoint(helics_federate fed, const char *name, const char *type, helics_error *err)
Definition: MessageFederateExport.cpp:69
helics::data_view
Definition: data_view.hpp:22
helics::MessageFederate
Definition: application_api/MessageFederate.hpp:20
helics::MessageFederate::getEndpoint
Endpoint & getEndpoint(const std::string &name) const
Definition: MessageFederate.cpp:332
helics::Federate::nameSegmentSeparator
char nameSegmentSeparator
the separator between automatically prependend names
Definition: application_api/Federate.hpp:66
getKey
std::string getKey(const Json::Value &element)
Definition: JsonProcessingFunctions.cpp:90
helicsFederateCreateMessageObject
helics_message_object helicsFederateCreateMessageObject(helics_federate fed, helics_error *err)
Definition: MessageFederateExport.cpp:565
helics_message
Definition: api-data.h:147
helics::getOptionIndex
int getOptionIndex(std::string val)
Definition: FederateInfo.cpp:356
helics::MessageFederate::registerInterfaces
virtual void registerInterfaces(const std::string &configString) override
Definition: MessageFederate.cpp:123
helics::getOptionValue
int getOptionValue(std::string val)
Definition: FederateInfo.cpp:375
helics::InvalidFunctionCall
Definition: core-exceptions.hpp:67
helics::MessageFederate::updateTime
virtual void updateTime(Time newTime, Time oldTime) override
Definition: MessageFederate.cpp:90
helicsEndpointCreateMessageObject
helics_message_object helicsEndpointCreateMessageObject(helics_endpoint endpoint, helics_error *err)
Definition: MessageFederateExport.cpp:574
helicsEndpointGetMessage
HELICS_DEPRECATED_EXPORT helics_message helicsEndpointGetMessage(helics_endpoint endpoint)
Definition: MessageFederateExport.cpp:482
helicsMessageGetRawData
void helicsMessageGetRawData(helics_message_object message, void *data, int maxMessageLength, int *actualSize, helics_error *err)
Definition: MessageFederateExport.cpp:838
helics::InvalidParameter
Definition: core-exceptions.hpp:48
helics::MessageFederate::~MessageFederate
virtual ~MessageFederate()
helicsMessageGetString
const char * helicsMessageGetString(helics_message_object message)
Definition: MessageFederateExport.cpp:820
helicsMessageIsValid
helics_bool helicsMessageIsValid(helics_message_object message)
Definition: MessageFederateExport.cpp:871
helicsMessageCheckFlag
helics_bool helicsMessageCheckFlag(helics_message_object message, int flag)
Definition: MessageFederateExport.cpp:807
helics::MessageFederate::hasMessage
bool hasMessage() const
Definition: MessageFederate.cpp:239
helicsEndpointGetType
const char * helicsEndpointGetType(helics_endpoint endpoint)
Definition: MessageFederateExport.cpp:629
helics::CoreApp
Definition: application_api/CoreApp.hpp:25
helicsMessageSetOriginalSource
void helicsMessageSetOriginalSource(helics_message_object message, const char *src, helics_error *err)
Definition: MessageFederateExport.cpp:897
helicsMessageGetDestination
const char * helicsMessageGetDestination(helics_message_object message)
Definition: MessageFederateExport.cpp:762
helicsEndpointSendMessageRaw
void helicsEndpointSendMessageRaw(helics_endpoint endpoint, const char *dst, const void *data, int inputDataLength, helics_error *err)
Definition: MessageFederateExport.cpp:181
helicsMessageSetSource
void helicsMessageSetSource(helics_message_object message, const char *src, helics_error *err)
Definition: MessageFederateExport.cpp:880
helics::FederateInfo
Definition: FederateInfo.hpp:20
helicsEndpointGetOption
int helicsEndpointGetOption(helics_endpoint endpoint, int option)
Definition: MessageFederateExport.cpp:699
helicsEndpointSubscribe
void helicsEndpointSubscribe(helics_endpoint endpoint, const char *key, helics_error *err)
Definition: MessageFederateExport.cpp:321
helicsEndpointClearMessages
HELICS_DEPRECATED_EXPORT void helicsEndpointClearMessages(helics_endpoint endpoint)
Definition: MessageFederateExport.cpp:595
helics::Federate::operator=
Federate & operator=(Federate &&fed) noexcept
Definition: Federate.cpp:183
helics::MessageFederate::setMessageNotificationCallback
void setMessageNotificationCallback(const std::function< void(Endpoint &, Time)> &callback)
helics_endpoint
void * helics_endpoint
Definition: api-data.h:36
helics::MessageFederate::subscribe
void subscribe(const Endpoint &ept, const std::string &key)
Definition: MessageFederate.cpp:228
helicsMessageGetTime
helics_time helicsMessageGetTime(helics_message_object message)
Definition: MessageFederateExport.cpp:789
loadJson
Json::Value loadJson(const std::string &jsonString)
Definition: JsonProcessingFunctions.cpp:24
helics::Endpoint::getHandle
interface_handle getHandle() const
‍** get the number of filters applied to the endpoint*‍/
Definition: Endpoints.hpp:210
helics::Federate::getID
auto getID() const noexcept
Definition: application_api/Federate.hpp:539
fed
@ fed
special logging command for message coming from a fed
Definition: loggingHelper.hpp:32
helicsMessageResize
void helicsMessageResize(helics_message_object message, int newSize, helics_error *err)
Definition: MessageFederateExport.cpp:922
helicsMessageSetDestination
void helicsMessageSetDestination(helics_message_object message, const char *dst, helics_error *err)
Definition: MessageFederateExport.cpp:889
helicsMessageSetString
void helicsMessageSetString(helics_message_object message, const char *str, helics_error *err)
Definition: MessageFederateExport.cpp:986
helicsEndpointPendingMessages
HELICS_DEPRECATED_EXPORT int helicsEndpointPendingMessages(helics_endpoint endpoint)
Definition: MessageFederateExport.cpp:379
helicsMessageGetSource
const char * helicsMessageGetSource(helics_message_object message)
Definition: MessageFederateExport.cpp:753
helics_error
Definition: api-data.h:166
helicsFederateGetEndpoint
helics_endpoint helicsFederateGetEndpoint(helics_federate fed, const char *name, helics_error *err)
Definition: MessageFederateExport.cpp:92
helics::MessageFederate::addSourceFilter
void addSourceFilter(const Endpoint &ept, const std::string &filterName)
Definition: MessageFederate.cpp:364
helicsMessageReserve
void helicsMessageReserve(helics_message_object message, int reserveSize, helics_error *err)
Definition: MessageFederateExport.cpp:936
helicsMessageFree
void helicsMessageFree(helics_message_object message)
Definition: MessageFederateExport.cpp:1066
helicsEndpointGetName
const char * helicsEndpointGetName(helics_endpoint endpoint)
Definition: MessageFederateExport.cpp:647
helics
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
helicsFederateClearMessages
void helicsFederateClearMessages(helics_federate fed)
Definition: MessageFederateExport.cpp:586
helicsFederateGetEndpointCount
int helicsFederateGetEndpointCount(helics_federate fed)
Definition: MessageFederateExport.cpp:657
helics::MessageFederate::addDestinationFilter
void addDestinationFilter(const Endpoint &ept, const std::string &filterName)
Definition: MessageFederate.cpp:369
helicsMessageAppendData
void helicsMessageAppendData(helics_message_object message, const void *data, int inputDataLength, helics_error *err)
Definition: MessageFederateExport.cpp:1004
helicsMessageGetRawDataPointer
void * helicsMessageGetRawDataPointer(helics_message_object message)
Definition: MessageFederateExport.cpp:862
helicsEndpointSetOption
void helicsEndpointSetOption(helics_endpoint endpoint, int option, int value, helics_error *err)
Definition: MessageFederateExport.cpp:715
helics::Endpoint::addSourceFilter
void addSourceFilter(const std::string &filterName)
Definition: Endpoints.hpp:191
helicsEndpointGetInfo
const char * helicsEndpointGetInfo(helics_endpoint end)
Definition: MessageFederateExport.cpp:667
helicsMessageGetRawDataSize
int helicsMessageGetRawDataSize(helics_message_object message)
Definition: MessageFederateExport.cpp:829
helics::MessageFederate::initializeToExecuteStateTransition
virtual void initializeToExecuteStateTransition(iteration_result result) override
Definition: MessageFederate.cpp:99
helics::Federate
Definition: application_api/Federate.hpp:44
helicsFederateGetMessageObject
helics_message_object helicsFederateGetMessageObject(helics_federate fed)
Definition: MessageFederateExport.cpp:547
helicsEndpointHasMessage
helics_bool helicsEndpointHasMessage(helics_endpoint endpoint)
Definition: MessageFederateExport.cpp:347
helicsMessageSetData
void helicsMessageSetData(helics_message_object message, const void *data, int inputDataLength, helics_error *err)
Definition: MessageFederateExport.cpp:995
helicsEndpointGetMessageObject
helics_message_object helicsEndpointGetMessageObject(helics_endpoint endpoint)
Definition: MessageFederateExport.cpp:531
helics::MessageFederate::getEndpointCount
int getEndpointCount() const
Definition: MessageFederate.cpp:359
helics_bool
int helics_bool
Definition: api-data.h:92
helics::MessageFederate::MessageFederate
MessageFederate()
Definition: MessageFederate.cpp:59
helics::Federate::coreObject
std::shared_ptr< Core > coreObject
reference to the core simulation API
Definition: application_api/Federate.hpp:75
helics::MessageFederate::startupToInitializeStateTransition
virtual void startupToInitializeStateTransition() override
Definition: MessageFederate.cpp:95
helicsEndpointSetInfo
void helicsEndpointSetInfo(helics_endpoint endpoint, const char *info, helics_error *err)
Definition: MessageFederateExport.cpp:683
helicsMessageGetOriginalSource
const char * helicsMessageGetOriginalSource(helics_message_object message)
Definition: MessageFederateExport.cpp:771
helics::MessageFederate::localQuery
virtual std::string localQuery(const std::string &queryStr) const override
Definition: MessageFederate.cpp:104
helicsEndpointGetDefaultDestination
const char * helicsEndpointGetDefaultDestination(helics_endpoint endpoint)
Definition: MessageFederateExport.cpp:171
helics::Federate::modes::initializing
@ initializing
entered after the enterInitializingMode call has returned
helics::Message
Definition: core-data.hpp:146
helics_federate
void * helics_federate
Definition: api-data.h:56
helics::Federate::modes::executing
@ executing
entered after the enterExectuationState call has returned
helicsEndpointSendMessageObjectZeroCopy
void helicsEndpointSendMessageObjectZeroCopy(helics_endpoint endpoint, helics_message_object message, helics_error *err)
Definition: MessageFederateExport.cpp:294
helics::Federate::disconnect
virtual void disconnect()
Definition: Federate.cpp:567