28 #ifndef _DPS_REGISTRATION_H 29 #define _DPS_REGISTRATION_H 49 #define DPS_REGISTRATION_PUT_TIMEOUT 2000 50 #define DPS_REGISTRATION_GET_TIMEOUT 5000 53 extern const char* DPS_RegistryTopicString; 58 #define DPS_CANDIDATE_TRYING 0x01 59 #define DPS_CANDIDATE_FAILED 0x02 60 #define DPS_CANDIDATE_LINKED 0x04 61 #define DPS_CANDIDATE_UNLINKED 0x08 62 #define DPS_CANDIDATE_INVALID 0x10 67 typedef struct _DPS_Registration { uint8_t flags
Registration entry flags.
Definition: registration.h:68
DPS_Registration list[1]
The list.
Definition: registration.h:78
DPS_Status DPS_Registration_Put(DPS_Node *node, const char *addrText, const char *tenantString, uint16_t timeout, DPS_OnRegPutComplete cb, void *data)
Register a local node with a registration service.
void(* DPS_OnRegGetComplete)(DPS_RegistrationList *regs, DPS_Status status, void *data)
Function prototype for callback called when DPS_Registration_Get() completes.
Definition: registration.h:145
struct _DPS_NodeAddress DPS_NodeAddress
Opaque type for a remote node address.
Definition: dps.h:57
DPS_RegistrationList * DPS_CreateRegistrationList(uint8_t size)
Create an empty registration list of the specified size.
struct _DPS_Registration DPS_Registration
Registration entry.
Registration entry.
Definition: registration.h:67
int DPS_Status
The status code type.
Definition: err.h:41
DPS_Status DPS_Registration_LinkTo(DPS_Node *node, DPS_RegistrationList *regs, DPS_OnRegLinkToComplete cb, void *data)
Randomly select a remote candidate to link to.
struct _DPS_RegistrationList DPS_RegistrationList
For returning a list of candidate remote nodes.
DPS_Status DPS_Registration_Get(DPS_Node *node, const char *addrText, const char *tenantString, DPS_RegistrationList *regs, uint16_t timeout, DPS_OnRegGetComplete cb, void *data)
Lookup the addresses registered with a registration service.
char * addrText
The registered address text.
Definition: registration.h:69
uint8_t count
Number of entries currently in the list.
Definition: registration.h:77
DPS_Status DPS_Registration_LinkToSyn(DPS_Node *node, DPS_RegistrationList *regs, DPS_NodeAddress *addr)
Synchronous version of Registration_LinkTo.
uint8_t size
Size of the list.
Definition: registration.h:76
DPS_Status DPS_Registration_PutSyn(DPS_Node *node, const char *addrText, const char *tenantString, uint16_t timeout)
Synchronous version of DPS_RegistrationPut().
DPS_Status DPS_Registration_GetSyn(DPS_Node *node, const char *addrText, const char *tenantString, DPS_RegistrationList *regs, uint16_t timeout)
A synchronous version of DPS_RegistrationGet() this function blocks until the candidate list has been...
void DPS_DestroyRegistrationList(DPS_RegistrationList *regs)
Destroy a registration list and free resources.
For returning a list of candidate remote nodes.
Definition: registration.h:75
void(* DPS_OnRegPutComplete)(DPS_Status status, void *data)
Function prototype for callback called when DPS_Registration_Put() completes.
Definition: registration.h:106
void(* DPS_OnRegLinkToComplete)(DPS_Node *node, DPS_RegistrationList *regs, const DPS_NodeAddress *addr, DPS_Status status, void *data)
Function prototype for callback called when DPS_Registration_LinkTo() completes.
Definition: registration.h:194
struct _DPS_Node DPS_Node
Opaque type for a node.
Definition: dps.h:450