![]() |
Diffusion C API 6.11.5
|
Types to describe a session, its parameters and related functions. More...
Data Structures | |
struct | session_id_s |
Structure describing a session ID, which is a unique identifier used by Diffusion for tracking this client; it is also used on reconnection to attempt to restore existing session state. More... | |
struct | session_listener_s |
When a session changes state, a listener may be called to inform the client of the transition via the appropriate function pointer in this structure. More... | |
struct | handler_set_s |
A handler set is registered against a conversation id and contains function pointers to callback handlers related to that conversation. More... | |
struct | reconnection_args_repeating |
struct | reconnection_strategy_s |
When connecting to Diffusion, a reconnection strategy can be employed which describes what to do if the connection fails. More... | |
struct | session_create_callback_s |
When creating a session which performs a connection to Diffusion asynchronously, these callbacks can be supplied and are invoked when the connection is made successfully, or an error occurs. More... | |
struct | session_s |
This is the session structure which is created to represent a single instance of connection (session) with Diffusion. More... | |
Typedefs | |
typedef struct session_id_s | SESSION_ID_T |
Structure describing a session ID, which is a unique identifier used by Diffusion for tracking this client; it is also used on reconnection to attempt to restore existing session state. | |
typedef int(* | TOPIC_HANDLER_T) (struct session_s *session, const TOPIC_MESSAGE_T *message) |
Standard topic handler callback. | |
typedef int(* | STREAM_MESSAGE_LISTENER_T) (struct session_s *session, const STREAM_MESSAGE_T *message, void *context) |
Message stream callback. | |
typedef int(* | ERROR_HANDLER_T) (struct session_s *session, const DIFFUSION_ERROR_T *error) |
Standard error handler callback. | |
typedef int(* | DISCARD_HANDLER_T) (struct session_s *session, void *context) |
Standard conversation discard handler callback. | |
typedef struct session_listener_s | SESSION_LISTENER_T |
When a session changes state, a listener may be called to inform the client of the transition via the appropriate function pointer in this structure. | |
typedef struct handler_set_s | HANDLER_SET_T |
A handler set is registered against a conversation id and contains function pointers to callback handlers related to that conversation. | |
typedef struct reconnection_strategy_s | RECONNECTION_STRATEGY_T |
When connecting to Diffusion, a reconnection strategy can be employed which describes what to do if the connection fails. | |
typedef struct session_create_callback_s | SESSION_CREATE_CALLBACK_T |
When creating a session which performs a connection to Diffusion asynchronously, these callbacks can be supplied and are invoked when the connection is made successfully, or an error occurs. | |
typedef struct session_s | SESSION_T |
This is the session structure which is created to represent a single instance of connection (session) with Diffusion. | |
Enumerations | |
enum | SESSION_STATE_T { SESSION_STATE_UNKNOWN , CONNECTING , CONNECTED_INITIALISING , CONNECTED_ACTIVE , RECOVERING_RECONNECT , RECOVERING_FAILOVER , CLOSED_BY_CLIENT , CLOSED_BY_SERVER , CLOSED_FAILED } |
A session will move through different states during its lifecycle. More... | |
enum | RECONNECTION_ATTEMPT_ACTION_T { RECONNECTION_ATTEMPT_ACTION_START , RECONNECTION_ATTEMPT_ACTION_ABORT } |
Variables | |
const uint32_t | DIFFUSION_DEFAULT_CONNECTION_TIMEOUT |
The time, in milliseconds, that a connection attempt will wait to be established before it is terminated. | |
const int | DIFFUSION_DEFAULT_RECONNECT_TIMEOUT |
The time, in milliseconds, that reconnection attempts will be retried. | |
const uint32_t | DIFFUSION_DEFAULT_WRITE_TIMEOUT |
The time, in milliseconds, that a blocking write will timeout after. | |
const uint32_t | DIFFUSION_DEFAULT_RECONNECT_DELAY |
The default delay between reconnection attempts, in milliseconds. | |
const uint32_t | DIFFUSION_MAXIMUM_MESSAGE_SIZE_MINIMUM |
The minimum max message size (in bytes). | |
const uint32_t | DIFFUSION_DEFAULT_MAXIMUM_QUEUE_SIZE |
The default maximum outbound queue size. | |
const uint32_t | DIFFUSION_DEFAULT_INPUT_BUFFER_SIZE |
The default input buffer size in bytes. | |
const uint32_t | DIFFUSION_DEFAULT_OUTPUT_BUFFER_SIZE |
The default output buffer size in bytes. | |
const char *const | DIFFUSION_DEFAULT_REQUEST_PATH |
The default request path. | |
const uint32_t | DIFFUSION_DEFAULT_RECOVERY_BUFFER_SIZE |
The default recovery buffer size. | |
const uint32_t | DIFFUSION_DEFAULT_RECONNECT_RETRY_COUNT |
The default number of reconnection attempts. | |
Types to describe a session, its parameters and related functions.
typedef struct handler_set_s HANDLER_SET_T |
A handler set is registered against a conversation id and contains function pointers to callback handlers related to that conversation.
Users should avoid populating or accessing this structure.
typedef struct reconnection_strategy_s RECONNECTION_STRATEGY_T |
When connecting to Diffusion, a reconnection strategy can be employed which describes what to do if the connection fails.
It is recommended that a reconnection strategy is created using one of the factory functions, e.g. make_reconnection_strategy_repeating_attempt, as direct access to the fields in this structure is likely to be withdrawn in the future.
enum SESSION_STATE_T |
A session will move through different states during its lifecycle.
This enumeration lists those possible states.
Enumerator | |
---|---|
SESSION_STATE_UNKNOWN | Unknown. |
CONNECTING | In the process of connecting to Diffusion. |
CONNECTED_INITIALISING | Connected to Diffusion but not yet receiving data. (Deprecated). |
CONNECTED_ACTIVE | Connected to Diffusion and receiving data. |
RECOVERING_RECONNECT | Recovering from a connection error by attempting to reconnect to the same Diffusion server. |
RECOVERING_FAILOVER |
|
CLOSED_BY_CLIENT | This session was closed by the client. |
CLOSED_BY_SERVER | This session was closed by Diffusion. |
CLOSED_FAILED | An error occurred which caused the connection to be lost. |
|
extern |
The time, in milliseconds, that a connection attempt will wait to be established before it is terminated.
Default value is 2 seconds.
|
extern |
The default input buffer size in bytes.
Default value is 131072.
|
extern |
The default maximum outbound queue size.
Default value is 1000.
|
extern |
The default output buffer size in bytes.
Default value is 131072.
|
extern |
The default delay between reconnection attempts, in milliseconds.
Default value is 5 seconds.
|
extern |
The default number of reconnection attempts.
This value is the result of DIFFUSION_DEFAULT_RECONNECT_TIMEOUT / DIFFUSION_DEFAULT_RECONNECT_DELAY
, thus the default value is 12.
|
extern |
The time, in milliseconds, that reconnection attempts will be retried.
Default value is 60 seconds.
|
extern |
The default recovery buffer size.
Default value is 128.
|
extern |
The default request path.
Default path is "/diffusion".
|
extern |
The time, in milliseconds, that a blocking write will timeout after.
Default value is 2 seconds.
|
extern |
The minimum max message size (in bytes).
This value is 1024.