20 #include "azure_c_shared_utility/macro_utils.h" 23 #include "gateway_export.h" 44 #define BROKER_RESULT_VALUES \ 47 BROKER_ADD_LINK_ERROR, \ 48 BROKER_REMOVE_LINK_ERROR, \ enum BROKER_RESULT_TAG BROKER_RESULT
Enumeration describing the result of Broker_Publish, Broker_AddModule, Broker_AddLink, and Broker_RemoveModule.
GATEWAY_EXPORT BROKER_RESULT Broker_AddModule(BROKER_HANDLE broker, const MODULE *module)
Adds a module to the message broker.
struct BROKER_LINK_DATA_TAG BROKER_LINK_DATA
Link Data with MODULE_HANDLE for source and sink.
void * MODULE_HANDLE
Represents a module instance.
Definition: module.h:25
struct BROKER_HANDLE_DATA_TAG * BROKER_HANDLE
Struct representing a message broker.
Definition: broker.h:18
Defines structures and function prototypes for creating, inspecting and disposing of messages publish...
GATEWAY_EXPORT BROKER_RESULT Broker_AddLink(BROKER_HANDLE broker, const BROKER_LINK_DATA *link)
Adds a route to the message broker.
Structure used to represent/abstract the idea of a module. May contain Handle/FxnPtrs or an interface...
Definition: module.h:44
GATEWAY_EXPORT BROKER_RESULT Broker_RemoveLink(BROKER_HANDLE broker, const BROKER_LINK_DATA *link)
Removes a route from the message broker.
GATEWAY_EXPORT void Broker_IncRef(BROKER_HANDLE broker)
Increments the reference count of a message broker.
GATEWAY_EXPORT BROKER_RESULT Broker_RemoveModule(BROKER_HANDLE broker, const MODULE *module)
Removes a module from the message broker.
GATEWAY_EXPORT void Broker_DecRef(BROKER_HANDLE broker)
Decrements the reference count of a message broker.
MODULE_HANDLE module_sink_handle
MODULE_HANDLE representing the module receiving messages.
Definition: broker.h:41
GATEWAY_EXPORT BROKER_HANDLE Broker_Create(void)
Creates a new message broker.
MODULE_HANDLE module_source_handle
MODULE_HANDLE representing the module generating/publishing messages.
Definition: broker.h:38
GATEWAY_EXPORT void Broker_Destroy(BROKER_HANDLE broker)
Disposes of resources allocated by a message broker.
GATEWAY_EXPORT BROKER_RESULT Broker_Publish(BROKER_HANDLE broker, MODULE_HANDLE source, MESSAGE_HANDLE message)
Publishes a message to the message broker.
Link Data with MODULE_HANDLE for source and sink.
Definition: broker.h:35
Interface for modules which communicate with other modules via a message broker.
struct MESSAGE_HANDLE_DATA_TAG * MESSAGE_HANDLE
Struct representing a particular message.
Definition: message.h:48