kinetic-c  v0.12.0
Seagate Kinetic Protocol Client Library for C
Data Structures | Macros | Typedefs | Enumerations
bus_types.h File Reference
#include <stdbool.h>
#include <stdint.h>
#include "threadpool.h"

Go to the source code of this file.

Data Structures

struct  bus_sink_cb_res_t
 
struct  bus_unpack_cb_res_t
 
struct  bus_config
 
struct  bus_result
 
struct  bus_msg_result_t
 
struct  bus_user_msg
 

Macros

#define BUS_MAX_CONCURRENT_SENDS   10
 
#define BUS_DEFAULT_TIMEOUT_SEC   10
 
#define BUS_NO_SEQ_ID   (-1)
 
#define BUS_LOG(B, LEVEL, EVENT_KEY, MSG, UDATA)
 
#define BUS_LOG_STRINGIFY(X)   #X
 
#define BUS_LOG_SNPRINTF(B, LEVEL, EVENT_KEY, UDATA, MAX_SZ, FMT,...)
 
#define BUS_ASSERT(B, UDATA, COND)
 

Typedefs

typedef void( bus_log_cb )(log_event_t event, int log_level, const char *msg, void *udata)
 
typedef bus_sink_cb_res_tbus_sink_cb )(uint8_t *read_buf, size_t read_size, void *socket_udata)
 
typedef bus_unpack_cb_res_tbus_unpack_cb )(void *msg, void *socket_udata)
 
typedef void( bus_error_cb )(bus_unpack_cb_res_t result, void *socket_udata)
 
typedef void( bus_unexpected_msg_cb )(void *msg, int64_t seq_id, void *bus_udata, void *socket_udata)
 
typedef void( bus_msg_cb )(bus_msg_result_t *res, void *udata)
 

Enumerations

enum  log_event_t
 
enum  Bus_Init_res_t
 
enum  bus_send_status_t
 
enum  bus_socket_t
 
enum  bus_status_res_t
 

Macro Definition Documentation

#define BUS_MAX_CONCURRENT_SENDS   10

Definition at line 33 of file bus_types.h.

#define BUS_DEFAULT_TIMEOUT_SEC   10

Definition at line 36 of file bus_types.h.

#define BUS_NO_SEQ_ID   (-1)

Definition at line 39 of file bus_types.h.

#define BUS_LOG (   B,
  LEVEL,
  EVENT_KEY,
  MSG,
  UDATA 
)
Value:
do { \
struct bus *_b = (B); \
int _level = LEVEL; \
log_event_t _event_key = EVENT_KEY; \
char *_msg = MSG; \
void *_udata = UDATA; \
if (_b->log_level >= _level && _b->log_cb != NULL) { \
_b->log_cb(_event_key, _level, _msg, _udata); \
} \
} while (0)
log_event_t
Definition: bus_types.h:95
Message bus.

Definition at line 45 of file bus_types.h.

#define BUS_LOG_STRINGIFY (   X)    #X

Definition at line 57 of file bus_types.h.

#define BUS_LOG_SNPRINTF (   B,
  LEVEL,
  EVENT_KEY,
  UDATA,
  MAX_SZ,
  FMT,
  ... 
)
Value:
do { \
struct bus *_b = (B); \
int _level = LEVEL; \
log_event_t _event_key = EVENT_KEY; \
void *_udata = UDATA; \
if (_b->log_level >= _level && _b->log_cb != NULL) { \
char _log_buf[MAX_SZ]; \
if (MAX_SZ < snprintf(_log_buf, MAX_SZ, \
FMT, __VA_ARGS__)) { \
_b->log_cb(_event_key, _level, \
"snprintf failure -- " \
__FILE__, \
_udata); \
char _line_buf[32]; \
snprintf(_line_buf, 32, "line %d\n", __LINE__); \
_b->log_cb(_event_key, _level, _line_buf, _udata); \
} else { \
_b->log_cb(_event_key, _level, _log_buf, _udata); \
} \
} \
} while (0)
log_event_t
Definition: bus_types.h:95
Message bus.

Definition at line 59 of file bus_types.h.

#define BUS_ASSERT (   B,
  UDATA,
  COND 
)
Value:
do { \
if(!(COND)) \
{ \
BUS_LOG_SNPRINTF(B, 0, LOG_ASSERT, UDATA, 128, \
"BUS FAILURE at %s:%d in %s: assert(" #COND ")", \
__FILE__, (int)__LINE__, __func__); \
assert(COND); \
} \
} while(0)
#define BUS_LOG_SNPRINTF(B, LEVEL, EVENT_KEY, UDATA, MAX_SZ, FMT,...)
Definition: bus_types.h:59

Definition at line 83 of file bus_types.h.

Typedef Documentation

typedef void( bus_log_cb)(log_event_t event, int log_level, const char *msg, void *udata)

Definition at line 110 of file bus_types.h.

typedef bus_sink_cb_res_t( bus_sink_cb)(uint8_t *read_buf, size_t read_size, void *socket_udata)

Definition at line 130 of file bus_types.h.

typedef bus_unpack_cb_res_t( bus_unpack_cb)(void *msg, void *socket_udata)

Definition at line 151 of file bus_types.h.

typedef void( bus_error_cb)(bus_unpack_cb_res_t result, void *socket_udata)

Definition at line 154 of file bus_types.h.

typedef void( bus_unexpected_msg_cb)(void *msg, int64_t seq_id, void *bus_udata, void *socket_udata)

Definition at line 159 of file bus_types.h.

typedef void( bus_msg_cb)(bus_msg_result_t *res, void *udata)

Definition at line 229 of file bus_types.h.

Enumeration Type Documentation

Enumerator
LOG_INITIALIZATION 
LOG_NEW_CLIENT 
LOG_SOCKET_REGISTERED 
LOG_SENDING_REQUEST 
LOG_SHUTDOWN 
LOG_SENDER 
LOG_LISTENER 
LOG_MEMORY 
LOG_ASSERT 
LOG_EVENT_TYPE_COUNT 

Definition at line 95 of file bus_types.h.

Enumerator
BUS_INIT_SUCCESS 
BUS_INIT_ERROR_NULL 
BUS_INIT_ERROR_MISSING_SINK_CB 
BUS_INIT_ERROR_MISSING_UNPACK_CB 
BUS_INIT_ERROR_ALLOC_FAIL 
BUS_INIT_ERROR_SENDER_INIT_FAIL 
BUS_INIT_ERROR_LISTENER_INIT_FAIL 
BUS_INIT_ERROR_THREADPOOL_INIT_FAIL 
BUS_INIT_ERROR_PTHREAD_INIT_FAIL 
BUS_INIT_ERROR_MUTEX_INIT_FAIL 

Definition at line 180 of file bus_types.h.

Enumerator
BUS_SEND_UNDEFINED 
BUS_SEND_REQUEST_COMPLETE 
BUS_SEND_SUCCESS 
BUS_SEND_TX_TIMEOUT 
BUS_SEND_TX_FAILURE 
BUS_SEND_RX_TIMEOUT 
BUS_SEND_RX_FAILURE 
BUS_SEND_BAD_RESPONSE 
BUS_SEND_UNREGISTERED_SOCKET 
BUS_SEND_RX_TIMEOUT_EXPECT 
BUS_SEND_TX_TIMEOUT_NOTIFYING_LISTENER 
BUS_SEND_TIMESTAMP_ERROR 

Definition at line 193 of file bus_types.h.

Enumerator
BUS_SOCKET_PLAIN 
BUS_SOCKET_SSL 

Definition at line 231 of file bus_types.h.

Enumerator
BUS_REQUEST_SUCCESS 
BUS_REQUEST_SEND_FAILURE_TIMEOUT 
BUS_REQUEST_SEND_FAILURE_HUP 
BUS_RESPONSE_FAILURE_TIMEOUT 
BUS_RESPONSE_FAILURE_HUP 

Definition at line 254 of file bus_types.h.