pjsip logo pjsip.org
Open source SIP stack and media stack for presence, im/instant messaging, and multimedia communication

HOME

SIP/media Features
High Performance SIP
Small Footprint SIP
Symbian Port

FAQ

Documentation

Licensing

Download

Development (Trac)

Projects using pjsip

Mailing List

Open Source Links


About: PJLIB, PJLIB-UTIL, PJSIP, and PJMEDIA are created by: Benny Prijono
<bennylp@pjsip.org>


 

Home --> Documentations --> PJLIB Reference

Atomic Variables
[Operating System Dependent Functionality.]


Detailed Description

This module provides API to manipulate atomic variables.

Examples

For some example codes, please see:


Functions

pj_status_t pj_atomic_create (pj_pool_t *pool, pj_atomic_value_t initial, pj_atomic_t **atomic)
pj_status_t pj_atomic_destroy (pj_atomic_t *atomic_var)
void pj_atomic_set (pj_atomic_t *atomic_var, pj_atomic_value_t value)
pj_atomic_value_t pj_atomic_get (pj_atomic_t *atomic_var)
void pj_atomic_inc (pj_atomic_t *atomic_var)
pj_atomic_value_t pj_atomic_inc_and_get (pj_atomic_t *atomic_var)
void pj_atomic_dec (pj_atomic_t *atomic_var)
pj_atomic_value_t pj_atomic_dec_and_get (pj_atomic_t *atomic_var)
void pj_atomic_add (pj_atomic_t *atomic_var, pj_atomic_value_t value)
pj_atomic_value_t pj_atomic_add_and_get (pj_atomic_t *atomic_var, pj_atomic_value_t value)


Function Documentation

void pj_atomic_add ( pj_atomic_t atomic_var,
pj_atomic_value_t  value 
)

Add a value to an atomic type.

Parameters:
atomic_var The atomic variable.
value Value to be added.

pj_atomic_value_t pj_atomic_add_and_get ( pj_atomic_t atomic_var,
pj_atomic_value_t  value 
)

Add a value to an atomic type and get the result.

Parameters:
atomic_var The atomic variable.
value Value to be added.
Returns:
The result after the addition.

pj_status_t pj_atomic_create ( pj_pool_t pool,
pj_atomic_value_t  initial,
pj_atomic_t **  atomic 
)

Create atomic variable.

Parameters:
pool The pool.
initial The initial value of the atomic variable.
atomic Pointer to hold the atomic variable upon return.
Returns:
PJ_SUCCESS on success, or the error code.

void pj_atomic_dec ( pj_atomic_t atomic_var  ) 

Decrement the value of an atomic type.

Parameters:
atomic_var the atomic variable.

pj_atomic_value_t pj_atomic_dec_and_get ( pj_atomic_t atomic_var  ) 

Decrement the value of an atomic type and get the result.

Parameters:
atomic_var the atomic variable.
Returns:
The decremented value.

pj_status_t pj_atomic_destroy ( pj_atomic_t atomic_var  ) 

Destroy atomic variable.

Parameters:
atomic_var the atomic variable.
Returns:
PJ_SUCCESS if success.

pj_atomic_value_t pj_atomic_get ( pj_atomic_t atomic_var  ) 

Get the value of an atomic type.

Parameters:
atomic_var the atomic variable.
Returns:
the value of the atomic variable.

void pj_atomic_inc ( pj_atomic_t atomic_var  ) 

Increment the value of an atomic type.

Parameters:
atomic_var the atomic variable.

pj_atomic_value_t pj_atomic_inc_and_get ( pj_atomic_t atomic_var  ) 

Increment the value of an atomic type and get the result.

Parameters:
atomic_var the atomic variable.
Returns:
The incremented value.

void pj_atomic_set ( pj_atomic_t atomic_var,
pj_atomic_value_t  value 
)

Set the value of an atomic type, and return the previous value.

Parameters:
atomic_var the atomic variable.
value value to be set to the variable.

 


PJLIB Open Source, high performance, small footprint, and very very portable framework
(C)2001-2008 Benny Prijono