EM-ODP 4.4.0
Event Machine on ODP
Loading...
Searching...
No Matches
em_queue.h File Reference
#include <stddef.h>
#include <stdint.h>
#include <odp_api.h>
#include <event_machine.h>
#include "em_eo_types.h"
#include "em_event_inline.h"
#include "em_mem.h"
#include "em_queue_types.h"
Include dependency graph for em_queue.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

em_status_t queue_init (queue_tbl_t *const queue_tbl, queue_pool_t *const queue_pool, queue_pool_t *const queue_pool_static, queue_pool_t *const queue_pool_aggr)
 
em_status_t queue_init_local (void)
 
em_status_t queue_term_local (void)
 
em_queue_t queue_alloc (em_queue_t queue, const char **err_str)
 
em_status_t queue_free (em_queue_t queue)
 
void queue_setup_common (const char *name, const em_queue_param_t *param, queue_elem_t *q_elem)
 
em_queue_t queue_create_param (const char *name, const em_queue_param_t *param, const char **err_str)
 
void queue_param_apply_conf (em_queue_param_t *param, const em_queue_conf_t *conf)
 
em_status_t queue_delete (queue_elem_t *const queue_elem, const char **err_str)
 
em_status_t queue_enable (queue_elem_t *const q_elem)
 
em_status_t queue_enable_all (eo_elem_t *const eo_elem)
 
em_status_t queue_disable (queue_elem_t *const q_elem)
 
em_status_t queue_disable_all (eo_elem_t *const eo_elem)
 
em_status_t queue_state_change__check (queue_state_t old_state, queue_state_t new_state, int is_setup)
 
em_status_t queue_state_change (queue_elem_t *const queue_elem, queue_state_t new_state)
 
em_status_t queue_state_change_all (eo_elem_t *const eo_elem, queue_state_t new_state)
 
unsigned int queue_count (void)
 
size_t queue_name (const queue_elem_t *const q_elem, char name[], const size_t maxlen)
 
void print_queue_info (void)
 
void print_queue_capa (void)
 
void print_queue_prio_info (void)
 
void print_queue_elem_info (void)
 
const char * queue_state_str (queue_state_t state)
 
const char * queue_type_str (em_queue_type_t type)
 

Detailed Description

EM internal queue functions

Definition in file em_queue.h.

Function Documentation

◆ print_queue_capa()

void print_queue_capa ( void  )

Print queue capabilities

Definition at line 2162 of file em_queue.c.

◆ print_queue_elem_info()

void print_queue_elem_info ( void  )

Definition at line 2028 of file em_queue.c.

◆ print_queue_info()

void print_queue_info ( void  )

Print information about all EM queues

Definition at line 2480 of file em_queue.c.

◆ print_queue_prio_info()

void print_queue_prio_info ( void  )

Definition at line 2282 of file em_queue.c.

◆ queue_alloc()

em_queue_t queue_alloc ( em_queue_t  queue,
const char **  err_str 
)

Allocate a new static or dynamic EM queue

Aggregator queue allocation uses queue_aggr_alloc() instead.

Parameters
queueEM queue handle if a specific EM queue is requested, EM_QUEUE_UNDEF if any EM queue will do.
[out]err_strOutput var for error message in case of failure.
Returns
EM queue handle
Return values
EM_QUEUE_UNDEFon failure

Definition at line 598 of file em_queue.c.

◆ queue_count()

unsigned int queue_count ( void  )

Definition at line 2302 of file em_queue.c.

◆ queue_create_param()

em_queue_t queue_create_param ( const char *  name,
const em_queue_param_t param,
const char **  err_str 
)

Definition at line 1035 of file em_queue.c.

◆ queue_delete()

em_status_t queue_delete ( queue_elem_t *const  queue_elem,
const char **  err_str 
)

is_setup

Definition at line 1080 of file em_queue.c.

◆ queue_disable()

em_status_t queue_disable ( queue_elem_t *const  q_elem)

Disable event reception of an EM queue

Definition at line 1992 of file em_queue.c.

◆ queue_disable_all()

em_status_t queue_disable_all ( eo_elem_t *const  eo_elem)

Disable event reception of ALL queues belonging to an EO

Definition at line 2012 of file em_queue.c.

◆ queue_enable()

em_status_t queue_enable ( queue_elem_t *const  q_elem)

Enable event reception of an EM queue

Definition at line 1953 of file em_queue.c.

◆ queue_enable_all()

em_status_t queue_enable_all ( eo_elem_t *const  eo_elem)

Enable event reception of ALL queues belonging to an EO

Definition at line 1973 of file em_queue.c.

◆ queue_free()

em_status_t queue_free ( em_queue_t  queue)

Definition at line 650 of file em_queue.c.

◆ queue_init()

em_status_t queue_init ( queue_tbl_t *const  queue_tbl,
queue_pool_t *const  queue_pool,
queue_pool_t *const  queue_pool_static,
queue_pool_t *const  queue_pool_aggr 
)

Initialize the EM queues

Definition at line 330 of file em_queue.c.

◆ queue_init_local()

em_status_t queue_init_local ( void  )

Queue inits done during EM core local init (once at startup on each core).

Initialize event storage for queues of type 'EM_QUEUE_TYPE_LOCAL'.

Definition at line 474 of file em_queue.c.

◆ queue_name()

size_t queue_name ( const queue_elem_t *const  q_elem,
char  name[],
const size_t  maxlen 
)

Definition at line 2307 of file em_queue.c.

◆ queue_param_apply_conf()

void queue_param_apply_conf ( em_queue_param_t param,
const em_queue_conf_t conf 
)

Apply em_queue_conf_t fields onto an em_queue_param_t.

Maps 'flags', 'min_events' and (for output queues) 'output_conf' from 'conf' onto 'param'. If 'conf' is NULL, 'param' is left untouched so the defaults set by em_queue_param_init() remain in effect.

'param->type' must be set by the caller before calling this helper, as it controls whether 'output_conf' is copied.

Definition at line 1020 of file em_queue.c.

◆ queue_setup_common()

void queue_setup_common ( const char *  name,
const em_queue_param_t param,
queue_elem_t q_elem 
)

Helper function to queue_setup()

Set EM queue params common to all EM queues based on EM config

Definition at line 1241 of file em_queue.c.

◆ queue_state_change()

em_status_t queue_state_change ( queue_elem_t *const  q_elem,
queue_state_t  new_state 
)

Change the queue state

Definition at line 1905 of file em_queue.c.

◆ queue_state_change__check()

em_status_t queue_state_change__check ( queue_state_t  old_state,
queue_state_t  new_state,
int  is_setup 
)

Helper func for queue_state_change() - check that state change is valid

Valid state transitions:

| |new-state|new-state |

old_state is_setup is_teardown
INVALID INIT (NULL)
INIT BIND INVALID
BIND READY INIT
READY (NULL) BIND

State change check is made easy because the following condition is true for valid state transitions: abs(old-new)=1

Definition at line 1853 of file em_queue.c.

◆ queue_state_change_all()

em_status_t queue_state_change_all ( eo_elem_t *const  eo_elem,
queue_state_t  new_state 
)

Change the queue state for all queues associated with the given EO

Definition at line 1918 of file em_queue.c.

◆ queue_state_str()

const char * queue_state_str ( queue_state_t  state)

Get the string of a queue state

Definition at line 2404 of file em_queue.c.

◆ queue_term_local()

em_status_t queue_term_local ( void  )

Queue termination done during em_term_core().

Flush & destroy event storage for queues of type 'EM_QUEUE_TYPE_LOCAL'.

Definition at line 542 of file em_queue.c.

◆ queue_type_str()

const char * queue_type_str ( em_queue_type_t  type)

Get the string of a queue type

Definition at line 2432 of file em_queue.c.