Data Structures | Macros | Typedefs | Enumerations | Functions
rpc.h File Reference
#include "mpack_core.h"
#include "object.h"

Go to the source code of this file.

Data Structures

struct  mpack_rpc_header_s
 
struct  mpack_rpc_message_s
 
struct  mpack_rpc_slot_s
 

Macros

#define MPACK_RPC_MAX_REQUESTS   32
 
#define MPACK_RPC_SESSION_STRUCT(c)
 
#define MPACK_RPC_SESSION_STRUCT_SIZE(c)
 

Typedefs

typedef struct mpack_rpc_header_s mpack_rpc_header_t
 
typedef struct mpack_rpc_message_s mpack_rpc_message_t
 

Enumerations

enum  { MPACK_RPC_REQUEST = MPACK_NOMEM + 1, MPACK_RPC_RESPONSE, MPACK_RPC_NOTIFICATION, MPACK_RPC_ERROR }
 
enum  {
  MPACK_RPC_EARRAY = MPACK_RPC_ERROR, MPACK_RPC_EARRAYL, MPACK_RPC_ETYPE, MPACK_RPC_EMSGID,
  MPACK_RPC_ERESPID
}
 

Functions

typedef MPACK_RPC_SESSION_STRUCT (1) mpack_rpc_one_session_t
 
typedef MPACK_RPC_SESSION_STRUCT (MPACK_RPC_MAX_REQUESTS) mpack_rpc_session_t
 
MPACK_API void mpack_rpc_session_init (mpack_rpc_session_t *s, mpack_uint32_t c) FUNUSED FNONULL
 
MPACK_API int mpack_rpc_receive_tok (mpack_rpc_session_t *s, mpack_token_t t, mpack_rpc_message_t *msg) FUNUSED FNONULL
 
MPACK_API int mpack_rpc_request_tok (mpack_rpc_session_t *s, mpack_token_t *t, mpack_data_t d) FUNUSED FNONULL_ARG((1
 
MPACK_API int MPACK_API int mpack_rpc_reply_tok (mpack_rpc_session_t *s, mpack_token_t *t, mpack_uint32_t i) FUNUSED FNONULL
 
MPACK_API int mpack_rpc_notify_tok (mpack_rpc_session_t *s, mpack_token_t *t) FUNUSED FNONULL
 
MPACK_API int mpack_rpc_receive (mpack_rpc_session_t *s, const char **b, size_t *bl, mpack_rpc_message_t *m) FUNUSED FNONULL
 
MPACK_API int mpack_rpc_request (mpack_rpc_session_t *s, char **b, size_t *bl, mpack_data_t d) FUNUSED FNONULL_ARG((1
 
MPACK_API int MPACK_API int mpack_rpc_reply (mpack_rpc_session_t *s, char **b, size_t *bl, mpack_uint32_t i) FNONULL FUNUSED
 
MPACK_API int mpack_rpc_notify (mpack_rpc_session_t *s, char **b, size_t *bl) FNONULL FUNUSED
 
MPACK_API void mpack_rpc_session_copy (mpack_rpc_session_t *d, mpack_rpc_session_t *s) FUNUSED FNONULL
 

Macro Definition Documentation

◆ MPACK_RPC_MAX_REQUESTS

#define MPACK_RPC_MAX_REQUESTS   32

◆ MPACK_RPC_SESSION_STRUCT

#define MPACK_RPC_SESSION_STRUCT (   c)
Value:
struct { \
mpack_tokbuf_t reader, writer; \
mpack_rpc_header_t receive, send; \
mpack_uint32_t request_id, capacity; \
struct mpack_rpc_slot_s slots[c]; \
}

◆ MPACK_RPC_SESSION_STRUCT_SIZE

#define MPACK_RPC_SESSION_STRUCT_SIZE (   c)
Value:
(sizeof(struct mpack_rpc_slot_s) * (c - 1) + \
sizeof(mpack_rpc_one_session_t))

Typedef Documentation

◆ mpack_rpc_header_t

◆ mpack_rpc_message_t

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
MPACK_RPC_REQUEST 
MPACK_RPC_RESPONSE 
MPACK_RPC_NOTIFICATION 
MPACK_RPC_ERROR 

◆ anonymous enum

anonymous enum
Enumerator
MPACK_RPC_EARRAY 
MPACK_RPC_EARRAYL 
MPACK_RPC_ETYPE 
MPACK_RPC_EMSGID 
MPACK_RPC_ERESPID 

Function Documentation

◆ mpack_rpc_notify()

MPACK_API int mpack_rpc_notify ( mpack_rpc_session_t *  s,
char **  b,
size_t *  bl 
)

◆ mpack_rpc_notify_tok()

MPACK_API int mpack_rpc_notify_tok ( mpack_rpc_session_t *  s,
mpack_token_t t 
)

◆ mpack_rpc_receive()

MPACK_API int mpack_rpc_receive ( mpack_rpc_session_t *  s,
const char **  b,
size_t *  bl,
mpack_rpc_message_t m 
)

◆ mpack_rpc_receive_tok()

MPACK_API int mpack_rpc_receive_tok ( mpack_rpc_session_t *  s,
mpack_token_t  t,
mpack_rpc_message_t msg 
)

◆ mpack_rpc_reply()

MPACK_API int MPACK_API int mpack_rpc_reply ( mpack_rpc_session_t *  s,
char **  b,
size_t *  bl,
mpack_uint32_t  i 
)

◆ mpack_rpc_reply_tok()

MPACK_API int MPACK_API int mpack_rpc_reply_tok ( mpack_rpc_session_t *  s,
mpack_token_t t,
mpack_uint32_t  i 
)

◆ mpack_rpc_request()

MPACK_API int mpack_rpc_request ( mpack_rpc_session_t *  s,
char **  b,
size_t *  bl,
mpack_data_t  d 
)

◆ mpack_rpc_request_tok()

MPACK_API int mpack_rpc_request_tok ( mpack_rpc_session_t *  s,
mpack_token_t t,
mpack_data_t  d 
)

◆ mpack_rpc_session_copy()

MPACK_API void mpack_rpc_session_copy ( mpack_rpc_session_t *  d,
mpack_rpc_session_t *  s 
)

◆ mpack_rpc_session_init()

MPACK_API void mpack_rpc_session_init ( mpack_rpc_session_t *  s,
mpack_uint32_t  c 
)

◆ MPACK_RPC_SESSION_STRUCT() [1/2]

typedef MPACK_RPC_SESSION_STRUCT ( )

◆ MPACK_RPC_SESSION_STRUCT() [2/2]

typedef MPACK_RPC_SESSION_STRUCT ( MPACK_RPC_MAX_REQUESTS  )
mpack_rpc_slot_s
Definition: rpc.h:36