NewMadeleine

Documentation

Remote queues.

Enqueue messages remotely in receiver queue. More...

Collaboration diagram for Remote queues.:

Typedefs

typedef int nm_onesided_queue_id_t
 local id for a queue More...
 

Functions

nm_onesided_queue_id_t nm_onesided_queue_create (nm_onesided_t p_onesided)
 create a local queue, accessible remotely More...
 
void nm_onesided_queue_ienqueue (nm_onesided_t p_onesided, struct nm_gate_s *p_gate, nm_onesided_queue_id_t queue, const void *p_ptr, nm_len_t len, nm_onesided_request_t *p_req)
 enqueue a message in the given remote queue, non-blocking version More...
 
void nm_onesided_queue_enqueue (nm_onesided_t p_onesided, struct nm_gate_s *p_gate, nm_onesided_queue_id_t queue, const void *p_ptr, nm_len_t len)
 enqueue a message in the given remote queue, blocking version More...
 
void * nm_onesided_queue_dequeue (nm_onesided_t p_onesided, nm_onesided_queue_id_t queue)
 try to dequeue an entry from local queue; return NULL if queue is empty. More...
 

Detailed Description

Enqueue messages remotely in receiver queue.

Queue creation is a local operation. Queue id is then transmited by the user. Remote enqueue has a local completion; it doesn't wait for remote completion. Upon error, messages are discarded.

Typedef Documentation

◆ nm_onesided_queue_id_t

local id for a queue

Definition at line 117 of file nm_onesided_interface.h.

Function Documentation

◆ nm_onesided_queue_create()

nm_onesided_queue_id_t nm_onesided_queue_create ( nm_onesided_t  p_onesided)

create a local queue, accessible remotely

Examples
nm_onesided_queues.c.

◆ nm_onesided_queue_dequeue()

void * nm_onesided_queue_dequeue ( nm_onesided_t  p_onesided,
nm_onesided_queue_id_t  queue 
)

try to dequeue an entry from local queue; return NULL if queue is empty.

The caller takes ownership of data and must free it after use.

Examples
nm_onesided_queues.c.

◆ nm_onesided_queue_enqueue()

void nm_onesided_queue_enqueue ( nm_onesided_t  p_onesided,
struct nm_gate_s p_gate,
nm_onesided_queue_id_t  queue,
const void *  p_ptr,
nm_len_t  len 
)

enqueue a message in the given remote queue, blocking version

◆ nm_onesided_queue_ienqueue()

void nm_onesided_queue_ienqueue ( nm_onesided_t  p_onesided,
struct nm_gate_s p_gate,
nm_onesided_queue_id_t  queue,
const void *  p_ptr,
nm_len_t  len,
nm_onesided_request_t p_req 
)

enqueue a message in the given remote queue, non-blocking version

Examples
nm_onesided_queues.c.