SimGrid  3.8.1
Scalable Simulation of Distributed Systems - Reference Manual
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Perl-like use of dynars

Functions

void xbt_dynar_push (xbt_dynar_t const dynar, const void *src)
 Add an element at the end of the dynar.
void xbt_dynar_pop (xbt_dynar_t const dynar, void *const dst)
 Get and remove the last element of the dynar.
void xbt_dynar_unshift (xbt_dynar_t const dynar, const void *src)
 Add an element at the begining of the dynar.
void xbt_dynar_shift (xbt_dynar_t const dynar, void *const dst)
 Get and remove the first element of the dynar.
void xbt_dynar_map (const xbt_dynar_t dynar, void_f_pvoid_t const op)
 Apply a function to each member of a dynar.

Detailed Description

Function Documentation

void xbt_dynar_unshift ( xbt_dynar_t const  dynar,
const void *const  src 
)

Add an element at the begining of the dynar.

This is less efficient than xbt_dynar_push()

void xbt_dynar_shift ( xbt_dynar_t const  dynar,
void *const  dst 
)

Get and remove the first element of the dynar.

This is less efficient than xbt_dynar_pop()

void xbt_dynar_map ( const xbt_dynar_t  dynar,
void_f_pvoid_t const  op 
)

Apply a function to each member of a dynar.

The mapped function may change the value of the element itself, but should not mess with the structure of the dynar.

If the dynar is synchronized, it is locked during the whole map operation, so make sure your function don't call any function from xbt_dynar_* on it, or you'll get a deadlock.