RDMnet  0.3.0
Implementation of ANSI E1.33 (RDMnet)
View other versions:
discovery.h File Reference

Overview

RDMnet Discovery API definitions.

Functions to discover a Broker and/or register a Broker for discovery. Uses mDNS and DNS-SD under the hood.

#include <stddef.h>
#include <stdint.h>
#include <string.h>
#include "etcpal/error.h"
#include "etcpal/uuid.h"
#include "etcpal/socket.h"
#include "rdmnet/common.h"
#include "rdmnet/defs.h"

Go to the source code of this file.

Data Structures

struct  RdmnetDnsTxtRecordItem
 An extra key/value pair in a broker's DNS TXT record that does not have a standard RDMnet use. More...
 
struct  RdmnetBrokerDiscInfo
 Information about a broker discovered or registered using DNS-SD. More...
 
struct  RdmnetDiscBrokerCallbacks
 A set of notification callbacks received by a registered broker instance. More...
 
struct  RdmnetBrokerRegisterConfig
 A set of information that defines the parameters of an RDMnet broker registered with DNS-SD. More...
 
struct  RdmnetScopeMonitorCallbacks
 A set of notification callbacks received by a scope monitor instance. More...
 
struct  RdmnetScopeMonitorConfig
 A set of information that defines the parameters of an RDMnet scope to be monitored using DNS-SD. More...
 

Macros

#define RDMNET_REGISTERED_BROKER_INVALID   NULL
 An invalid registered broker value.
 
#define RDMNET_BROKER_REGISTER_CONFIG_DEFAULT_INIT
 A default-value initializer for an RdmnetBrokerRegisterConfig struct. More...
 
#define RDMNET_SCOPE_MONITOR_INVALID   NULL
 An invalid monitored scope handle value.
 
#define RDMNET_SCOPE_MONITOR_CONFIG_DEFAULT_INIT
 A default-value initializer for an RdmnetScopeMonitorConfig struct. More...
 

Typedefs

typedef struct RdmnetDnsTxtRecordItem RdmnetDnsTxtRecordItem
 An extra key/value pair in a broker's DNS TXT record that does not have a standard RDMnet use. More...
 
typedef struct RdmnetBrokerRegisterRef * rdmnet_registered_broker_t
 A handle to an RDMnet broker's DNS-SD registration.
 
typedef struct RdmnetBrokerDiscInfo RdmnetBrokerDiscInfo
 Information about a broker discovered or registered using DNS-SD.
 
typedef struct RdmnetDiscBrokerCallbacks RdmnetDiscBrokerCallbacks
 A set of notification callbacks received by a registered broker instance.
 
typedef struct RdmnetBrokerRegisterConfig RdmnetBrokerRegisterConfig
 A set of information that defines the parameters of an RDMnet broker registered with DNS-SD.
 
typedef struct RdmnetScopeMonitorRef * rdmnet_scope_monitor_t
 A handle to a monitored RDMnet scope.
 
typedef struct RdmnetScopeMonitorCallbacks RdmnetScopeMonitorCallbacks
 A set of notification callbacks received by a scope monitor instance.
 
typedef struct RdmnetScopeMonitorConfig RdmnetScopeMonitorConfig
 A set of information that defines the parameters of an RDMnet scope to be monitored using DNS-SD.
 
Registered Broker Callbacks
typedef 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. More...
 
typedef void(* RdmnetDiscBrokerRegisterFailedCallback) (rdmnet_registered_broker_t handle, int platform_error, void *context)
 Broker registration has failed. More...
 
typedef 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. More...
 
typedef 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. More...
 
Scope Monitor Callbacks
typedef void(* RdmnetDiscBrokerFoundCallback) (rdmnet_scope_monitor_t handle, const RdmnetBrokerDiscInfo *broker_info, void *context)
 An RDMnet broker has been found on a monitored scope. More...
 
typedef 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. More...
 
typedef 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. More...
 

Functions

void rdmnet_broker_register_config_init (RdmnetBrokerRegisterConfig *config)
 Initialize an RdmnetBrokerRegisterConfig with default values for the optional config options. More...
 
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. More...
 
void rdmnet_scope_monitor_config_init (RdmnetScopeMonitorConfig *config)
 Initialize an RdmnetScopeMonitorConfig with default values for the optional config options. More...
 
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. More...
 
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. More...
 
void rdmnet_disc_stop_monitoring (rdmnet_scope_monitor_t handle)
 Stop monitoring an RDMnet scope for brokers. More...
 
void rdmnet_disc_stop_monitoring_all (void)
 Stop monitoring all RDMnet scopes for brokers. More...
 
etcpal_error_t rdmnet_disc_register_broker (const RdmnetBrokerRegisterConfig *config, rdmnet_registered_broker_t *handle)
 Register an RDMnet broker on a scope. More...
 
void rdmnet_disc_unregister_broker (rdmnet_registered_broker_t handle)
 Unegister an RDMnet broker on a scope. More...