Diffusion C API  5.9.24
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
svc-missing-topic.h File Reference

Allow a client to register to receive notification of subscription/fetch requests for topics that do not exist. More...

Data Structures

struct  svc_missing_topic_request_s
 Structure of a request to register for missing topic notifications. More...
 
struct  svc_missing_topic_response_s
 Structure of a response to register for missing topic notifications. More...
 
struct  missing_topic_handlers_s
 
struct  missing_topic_params_s
 Structure supplied when registering to receive missing topic notifications. More...
 

Macros

#define MISSING_TOPIC_HANDLERS
 Callback handlers for missing topic notification messages.
 

Typedefs

typedef struct
svc_missing_topic_request_s 
SVC_MISSING_TOPIC_REQUEST_T
 Structure of a request to register for missing topic notifications.
 
typedef struct
svc_missing_topic_response_s 
SVC_MISSING_TOPIC_RESPONSE_T
 Structure of a response to register for missing topic notifications.
 
typedef int(* on_missing_topic_cb )(SESSION_T *session, const SVC_MISSING_TOPIC_REQUEST_T *request, void *context)
 Callback for missing_topic_register_handler(). More...
 
typedef struct
missing_topic_params_s 
MISSING_TOPIC_PARAMS_T
 Structure supplied when registering to receive missing topic notifications.
 

Enumerations

enum  MISSING_TOPIC_ACTION_T { MISSING_TOPIC_CANCEL, MISSING_TOPIC_PROCEED }
 Specifies whether a missing topic notification should cause Diffusion to retry the original request (proceed) or not (cancel). More...
 

Functions

CONVERSATION_ID_Tmissing_topic_register_handler (SESSION_T *session, const MISSING_TOPIC_PARAMS_T params)
 Register to receive notifications about missing topics that clients attempt to fetch/subscribe. More...
 
void missing_topic_deregister_handler (SESSION_T *session, const CONVERSATION_ID_T *conversation_id)
 Cease receiving missing topic notifications. More...
 
void missing_topic_proceed (SESSION_T *session, SVC_MISSING_TOPIC_REQUEST_T *request)
 Proceed (retry) after a processing a missing topic notification. More...
 
void missing_topic_cancel (SESSION_T *session, SVC_MISSING_TOPIC_REQUEST_T *request)
 Cancel the operation leading to this missing topic notification. More...
 

Detailed Description

Allow a client to register to receive notification of subscription/fetch requests for topics that do not exist.

Typedef Documentation

typedef int(* on_missing_topic_cb)(SESSION_T *session, const SVC_MISSING_TOPIC_REQUEST_T *request, void *context)

Callback for missing_topic_register_handler().

Parameters
sessionThe current active session.
requestThe incoming notification message.
contextUser-supplied context from the initial registration call.
Returns
HANDLER_SUCCESS or HANDLER_FAILURE.

Enumeration Type Documentation

Specifies whether a missing topic notification should cause Diffusion to retry the original request (proceed) or not (cancel).

If the requested topic is missing, the handler can elect to create the topic and call missing_topic_proceed() to instruct Diffusion to retry the original operation.

Enumerator
MISSING_TOPIC_CANCEL 

Cancel the original operation.

MISSING_TOPIC_PROCEED 

Retry the original operations.