23 #ifndef _DPS_REGISTRATION_H 24 #define _DPS_REGISTRATION_H 38 #define DPS_CANDIDATE_TRYING 0x01 39 #define DPS_CANDIDATE_FAILED 0x02 40 #define DPS_CANDIDATE_LINKED 0x04 41 #define DPS_CANDIDATE_UNLINKED 0x08 42 #define DPS_CANDIDATE_INVALID 0x10 47 typedef struct _DPS_Registration { struct _DPS_Registration DPS_Registration
Registration entry.
const char * DPS_RegistryTopicString
APIs for interacting with a registration service.
uint8_t flags
Definition: registration.h:48
DPS_Registration list[1]
Definition: registration.h:59
DPS_Status DPS_Registration_PutSyn(DPS_Node *node, const char *host, uint16_t port, const char *tenantString)
Synchronous version of DPS_RegistrationPut().
char * host
Definition: registration.h:50
void DPS_DestroyRegistrationList(DPS_RegistrationList *regs)
Destroy a regisration list and free resources.
int DPS_Status
Definition: err.h:30
uint16_t port
Definition: registration.h:49
struct _DPS_NodeAddress DPS_NodeAddress
Opaque type for a remote node address.
Definition: dps.h:57
DPS_Status DPS_Registration_Get(DPS_Node *node, const char *host, uint16_t port, const char *tenantString, DPS_RegistrationList *regs, DPS_OnRegGetComplete cb, void *data)
Resolve the host and port of a registration service and lookup the addresses registered with that ser...
DPS_Status DPS_Registration_Put(DPS_Node *node, const char *host, uint16_t port, const char *tenantString, DPS_OnRegPutComplete cb, void *data)
Resolve the host and port of a registration service and register a local node with that service...
Registration entry.
Definition: registration.h:47
DPS_RegistrationList * DPS_CreateRegistrationList(uint8_t size)
Create an empty regisration list of the specified size.
DPS_Status DPS_Registration_GetSyn(DPS_Node *node, const char *host, uint16_t port, const char *tenantString, DPS_RegistrationList *regs)
A synchronous version of DPS_RegistrationGet() this function blocks until the candidate list has been...
struct _DPS_RegistrationList DPS_RegistrationList
For returning a list of candidate remote nodes.
uint8_t count
Definition: registration.h:58
uint8_t size
Definition: registration.h:57
struct _DPS_Node DPS_Node
Opaque type for a node.
Definition: dps.h:52
DPS_Status DPS_Registration_LinkTo(DPS_Node *node, DPS_RegistrationList *regs, DPS_OnRegLinkToComplete cb, void *data)
Randomly select a remote candidate to link to.
void(* DPS_OnRegLinkToComplete)(DPS_Node *node, DPS_RegistrationList *regs, DPS_NodeAddress *addr, DPS_Status status, void *data)
Function prototype for callback called when DPS_Registration_LinkTo() completes.
Definition: registration.h:166
void(* DPS_OnRegGetComplete)(DPS_RegistrationList *regs, DPS_Status status, void *data)
Function prototype for callback called when DPS_Registration_Get() completes.
Definition: registration.h:119
For returning a list of candidate remote nodes.
Definition: registration.h:56
DPS_Status DPS_Registration_LinkToSyn(DPS_Node *node, DPS_RegistrationList *regs, DPS_NodeAddress *addr)
Synchronous version of Registration_LinkTo.
void(* DPS_OnRegPutComplete)(DPS_Status status, void *data)
Function prototype for callback called when DPS_Registration_Put() completes.
Definition: registration.h:81