28 #ifndef RDMNET_DISCOVERY_H_
29 #define RDMNET_DISCOVERY_H_
34 #include "etcpal/error.h"
35 #include "etcpal/uuid.h"
36 #include "etcpal/socket.h"
38 #include "rdmnet/defs.h"
81 #define RDMNET_REGISTERED_BROKER_INVALID NULL
134 const char* assigned_service_instance_name,
166 const char* service_instance_name,
237 #define RDMNET_BROKER_REGISTER_CONFIG_DEFAULT_INIT \
239 {{0}}, {0}, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL, 0, { NULL, NULL, NULL, NULL, NULL } \
245 #define RDMNET_SCOPE_MONITOR_INVALID NULL
281 const char* service_instance_name,
326 #define RDMNET_SCOPE_MONITOR_CONFIG_DEFAULT_INIT \
328 E133_DEFAULT_SCOPE, {NULL, NULL, NULL}, NULL \
348 int* platform_specific_error);
Functions and definitions common to all RDMnet API modules.
void(* RdmnetDiscBrokerRegisterFailedCallback)(rdmnet_registered_broker_t handle, int platform_error, void *context)
Broker registration has failed.
Definition: discovery.h:143
void(* RdmnetDiscOtherBrokerLostCallback)(rdmnet_registered_broker_t handle, const char *scope, const char *service_instance_name, void *context)
A broker which was previously detected on the same scope as a registered broker has been lost.
Definition: discovery.h:164
struct RdmnetBrokerDiscInfo RdmnetBrokerDiscInfo
void rdmnet_scope_monitor_config_init(RdmnetScopeMonitorConfig *config)
Initialize an RdmnetScopeMonitorConfig with default values for the optional config options.
Definition: common.c:171
struct RdmnetDiscBrokerCallbacks RdmnetDiscBrokerCallbacks
etcpal_error_t rdmnet_disc_start_monitoring(const RdmnetScopeMonitorConfig *config, rdmnet_scope_monitor_t *handle, int *platform_specific_error)
Begin monitoring an RDMnet scope for brokers.
Definition: common.c:221
void rdmnet_broker_register_config_set_callbacks(RdmnetBrokerRegisterConfig *config, RdmnetDiscBrokerRegisteredCallback broker_registered, RdmnetDiscBrokerRegisterFailedCallback broker_register_failed, RdmnetDiscOtherBrokerFoundCallback other_broker_found, RdmnetDiscOtherBrokerLostCallback other_broker_lost, void *context)
Set the callbacks in an RDMnet broker register configuration structure.
Definition: common.c:139
void(* RdmnetDiscBrokerLostCallback)(rdmnet_scope_monitor_t handle, const char *scope, const char *service_instance_name, void *context)
A previously-discovered RDMnet broker has been lost on a monitored scope.
Definition: discovery.h:279
etcpal_error_t rdmnet_disc_register_broker(const RdmnetBrokerRegisterConfig *config, rdmnet_registered_broker_t *handle)
Register an RDMnet broker on a scope.
Definition: common.c:333
void rdmnet_disc_stop_monitoring(rdmnet_scope_monitor_t handle)
Stop monitoring an RDMnet scope for brokers.
Definition: common.c:277
void(* RdmnetDiscOtherBrokerFoundCallback)(rdmnet_registered_broker_t handle, const RdmnetBrokerDiscInfo *broker_info, void *context)
Another broker has been found on the scope on which this broker is registered.
Definition: discovery.h:153
void rdmnet_scope_monitor_config_set_callbacks(RdmnetScopeMonitorConfig *config, RdmnetDiscBrokerFoundCallback broker_found, RdmnetDiscBrokerUpdatedCallback broker_udpated, RdmnetDiscBrokerLostCallback broker_lost, void *context)
Set the callbacks in an RDMnet scope monitor configuration structure.
Definition: common.c:188
struct RdmnetScopeMonitorCallbacks RdmnetScopeMonitorCallbacks
void(* RdmnetDiscBrokerUpdatedCallback)(rdmnet_scope_monitor_t handle, const RdmnetBrokerDiscInfo *updated_broker_info, void *context)
Updated information has been received for a previously-discovered RDMnet broker.
Definition: discovery.h:268
void(* RdmnetDiscBrokerFoundCallback)(rdmnet_scope_monitor_t handle, const RdmnetBrokerDiscInfo *broker_info, void *context)
An RDMnet broker has been found on a monitored scope.
Definition: discovery.h:258
struct RdmnetScopeMonitorRef * rdmnet_scope_monitor_t
Definition: discovery.h:243
void(* RdmnetDiscBrokerRegisteredCallback)(rdmnet_registered_broker_t handle, const char *assigned_service_instance_name, void *context)
A broker has been registered successfully with the DNS-SD service.
Definition: discovery.h:133
struct RdmnetDnsTxtRecordItem RdmnetDnsTxtRecordItem
An extra key/value pair in a broker's DNS TXT record that does not have a standard RDMnet use.
void rdmnet_disc_unregister_broker(rdmnet_registered_broker_t handle)
Unegister an RDMnet broker on a scope.
Definition: common.c:392
struct RdmnetScopeMonitorConfig RdmnetScopeMonitorConfig
struct RdmnetBrokerRegisterRef * rdmnet_registered_broker_t
Definition: discovery.h:79
void rdmnet_disc_stop_monitoring_all(void)
Stop monitoring all RDMnet scopes for brokers.
Definition: common.c:296
struct RdmnetBrokerRegisterConfig RdmnetBrokerRegisterConfig
void rdmnet_broker_register_config_init(RdmnetBrokerRegisterConfig *config)
Initialize an RdmnetBrokerRegisterConfig with default values for the optional config options.
Definition: common.c:119
Definition: discovery.h:85
int e133_version
Definition: discovery.h:91
size_t num_additional_txt_items
Definition: discovery.h:118
const unsigned int * listen_addr_netints
Definition: discovery.h:105
EtcPalUuid cid
Definition: discovery.h:87
const RdmnetDnsTxtRecordItem * additional_txt_items
Definition: discovery.h:116
const char * manufacturer
Definition: discovery.h:113
uint16_t port
Definition: discovery.h:101
const char * scope
Definition: discovery.h:109
RdmUid uid
Definition: discovery.h:89
const EtcPalIpAddr * listen_addrs
Definition: discovery.h:103
const char * model
Definition: discovery.h:111
size_t num_listen_addrs
Definition: discovery.h:107
const char * service_instance_name
The broker's service instance name.
Definition: discovery.h:99
Definition: discovery.h:185
size_t num_additional_txt_items
Definition: discovery.h:222
EtcPalUuid cid
Definition: discovery.h:191
const RdmnetDnsTxtRecordItem * additional_txt_items
Definition: discovery.h:220
size_t num_netints
Definition: discovery.h:211
const char * manufacturer
Definition: discovery.h:217
uint16_t port
Definition: discovery.h:204
const unsigned int * netints
An array of network interface indexes on which the broker should respond to mDNS queries.
Definition: discovery.h:209
RdmnetDiscBrokerCallbacks callbacks
Definition: discovery.h:225
const char * scope
Definition: discovery.h:213
RdmUid uid
Definition: discovery.h:193
const char * model
Definition: discovery.h:215
const char * service_instance_name
The broker's requested service instance name.
Definition: discovery.h:202
Definition: discovery.h:175
RdmnetDiscOtherBrokerLostCallback other_broker_lost
Definition: discovery.h:179
RdmnetDiscBrokerRegisteredCallback broker_registered
Definition: discovery.h:176
RdmnetDiscBrokerRegisterFailedCallback broker_register_failed
Definition: discovery.h:177
void * context
Definition: discovery.h:180
RdmnetDiscOtherBrokerFoundCallback other_broker_found
Definition: discovery.h:178
An extra key/value pair in a broker's DNS TXT record that does not have a standard RDMnet use.
Definition: discovery.h:72
const uint8_t * value
Definition: discovery.h:74
const char * key
Definition: discovery.h:73
uint8_t value_len
Definition: discovery.h:75
Definition: discovery.h:290
RdmnetDiscBrokerLostCallback broker_lost
Definition: discovery.h:293
RdmnetDiscBrokerUpdatedCallback broker_updated
Definition: discovery.h:292
void * context
Definition: discovery.h:294
RdmnetDiscBrokerFoundCallback broker_found
Definition: discovery.h:291
Definition: discovery.h:299
const char * domain
Definition: discovery.h:314
const char * scope
Definition: discovery.h:305
RdmnetScopeMonitorCallbacks callbacks
Definition: discovery.h:307