element
[data]

Collaboration diagram for element:

Detailed Description

Module for manage EasyDbus element.

Functions for manage easydbus elements

Element Meta Information

Contact:
Daniele Rondina aka Ge@@ru <geaaru@gmail.com>
Status:
EasyDbus Core Library
License:
GPL
Contributor(s):


Data Structures

struct  EasyDbus_elem
 Used for save an unique message param. More...

Functions

EasyDbus_elemeasydbus_elem_create (enum el_type type)
 Create an element object.
char easydbus_elem_get_boolean (const EasyDbus_elem *elem)
 Get boolean from boolean element.
int easydbus_elem_get_byte (const EasyDbus_elem *elem, char *byte)
 Get byte from byte element and save value on byte input param.
const EasyDbus_containereasydbus_elem_get_container (const EasyDbus_elem *elem)
 Get container object from element.
int easydbus_elem_get_double (const EasyDbus_elem *elem, double *d)
 Get double from double element.
const EasyDbus_elemeasydbus_elem_get_element (const EasyDbus_elem *elem, unsigned int n)
 Get n-element from element passed in input.
int easydbus_elem_get_i16 (const EasyDbus_elem *elem, short *i16)
 Get int16 from int16 element.
int easydbus_elem_get_i32 (const EasyDbus_elem *elem, int *i32)
 Get int32 from int32 element.
int easydbus_elem_get_i64 (const EasyDbus_elem *elem, long long *i64)
 Get int64 from int64 element.
const EasyDbus_elemeasydbus_elem_get_next (const EasyDbus_elem *el)
 Get next element of element object passed in input.
const char * easydbus_elem_get_obj_path (const EasyDbus_elem *elem)
 Get object path string from element object.
const char * easydbus_elem_get_signature (const EasyDbus_elem *elem)
 Get signature string from element object.
const char * easydbus_elem_get_string (const EasyDbus_elem *elem)
 Get string from string element.
enum el_type easydbus_elem_get_type (const EasyDbus_elem *elem)
 Get type of element object.
int easydbus_elem_get_ui16 (const EasyDbus_elem *elem, unsigned short *ui16)
 Get uint16 from uint16 element.
int easydbus_elem_get_ui32 (const EasyDbus_elem *elem, unsigned int *ui32)
 Get uint32 from uint32 element.
int easydbus_elem_get_ui64 (const EasyDbus_elem *elem, unsigned long long *ui64)
 Get uint64 from uint64 element.


Function Documentation

EasyDbus_elem* easydbus_elem_create ( enum el_type  type  )  [inline]

Create an element object.

For internal use only.

Precondition:
type != EASYDBUS_ELTYPE_INVALID
Parameters:
type type of element that must be created.
Returns:
NULL on error

pointer to new element object.

Definition at line 379 of file elem.c.

References EASYDBUS_ELTYPE_ARRAY, EASYDBUS_ELTYPE_DICT_ENTRY, EASYDBUS_ELTYPE_INVALID, EASYDBUS_ELTYPE_OBJECT_PATH, EASYDBUS_ELTYPE_SIGNATURE, EASYDBUS_ELTYPE_STRING, EASYDBUS_ELTYPE_STRUCT, EASYDBUS_ELTYPE_VARIANT, EasyDbus_elem::next, EasyDbus_elem::p_container, EasyDbus_elem::payload, EasyDbus_elem::string, and EasyDbus_elem::type.

Referenced by easydbus_add_array_param_to_skeleton(), easydbus_add_boolean_param_to_skeleton(), easydbus_add_byte_param_to_skeleton(), easydbus_add_double_param_to_skeleton(), easydbus_add_i16_param_to_skeleton(), easydbus_add_i32_param_to_skeleton(), easydbus_add_i64_param_to_skeleton(), easydbus_add_obj_path_param_to_skeleton(), easydbus_add_signature_param_to_skeleton(), easydbus_add_string_param_to_skeleton(), easydbus_add_struct_param_to_skeleton(), easydbus_add_ui16_param_to_skeleton(), easydbus_add_ui32_param_to_skeleton(), easydbus_add_ui64_param_to_skeleton(), easydbus_add_variant_param_to_skeleton(), easydbus_array_add_array(), easydbus_array_add_dict_entry(), easydbus_array_add_struct(), easydbus_array_add_variant(), easydbus_dict_entry_add_boolean(), easydbus_dict_entry_add_byte(), easydbus_dict_entry_add_double(), easydbus_dict_entry_add_i16(), easydbus_dict_entry_add_i32(), easydbus_dict_entry_add_i64(), easydbus_dict_entry_add_obj_path(), easydbus_dict_entry_add_signature(), easydbus_dict_entry_add_string(), easydbus_dict_entry_add_ui16(), easydbus_dict_entry_add_ui32(), easydbus_dict_entry_add_ui64(), easydbus_dict_entry_add_variant(), easydbus_struct_add_array(), easydbus_struct_add_boolean(), easydbus_struct_add_byte(), easydbus_struct_add_dict_entry(), easydbus_struct_add_double(), easydbus_struct_add_i16(), easydbus_struct_add_i32(), easydbus_struct_add_i64(), easydbus_struct_add_obj_path(), easydbus_struct_add_signature(), easydbus_struct_add_string(), easydbus_struct_add_struct(), easydbus_struct_add_ui16(), easydbus_struct_add_ui32(), easydbus_struct_add_ui64(), and easydbus_struct_add_variant().

00380 {
00381    struct EasyDbus_elem *el = NULL;
00382 
00383    if (type == EASYDBUS_ELTYPE_INVALID)
00384       return NULL;
00385 
00386    el =
00387       (struct EasyDbus_elem *) malloc (sizeof (struct EasyDbus_elem));
00388 
00389    if (!el)
00390       return NULL;
00391 
00392    memset (el, 0, sizeof (struct EasyDbus_elem));
00393 
00394    el->type = type;
00395    switch (type) {
00396       case EASYDBUS_ELTYPE_STRING:
00397       case EASYDBUS_ELTYPE_OBJECT_PATH:
00398       case EASYDBUS_ELTYPE_SIGNATURE:
00399          el->payload.string = NULL;
00400          break;
00401       case EASYDBUS_ELTYPE_ARRAY:
00402       case EASYDBUS_ELTYPE_VARIANT:
00403       case EASYDBUS_ELTYPE_DICT_ENTRY:
00404       case EASYDBUS_ELTYPE_STRUCT:
00405          el->payload.p_container = NULL;
00406          break;
00407       default: /* do nothing because its are already initialize */
00408          //case EASYDBUS_ELTYPE_BYTE:
00409          //case EASYDBUS_ELTYPE_BOOLEAN:
00410          //case EASYDBUS_ELTYPE_INT16:
00411          //case EASYDBUS_ELTYPE_UINT16:
00412          //case EASYDBUS_ELTYPE_INT32,
00413          //case EASYDBUS_ELTYPE_UINT32,
00414          //case EASYDBUS_ELTYPE_INT64,
00415          //case EASYDBUS_ELTYPE_UINT64,
00416          //case EASYDBUS_ELTYPE_DOUBLE,
00417          break;
00418    }
00419    el->next = NULL;
00420    return el;
00421 }

char easydbus_elem_get_boolean ( const EasyDbus_elem elem  ) 

Get boolean from boolean element.

Precondition:
elem != NULL && element type == EASYDBUS_ELTYPE_BOOLEAN.
Parameters:
elem pointer to element object.
Returns:
O boolean value of element equal to FALSE

1 boolean value of element equal to TRUE

-1 on error

Definition at line 120 of file elem.c.

References EasyDbus_elem::boolean, EASYDBUS_ELTYPE_BOOLEAN, EasyDbus_elem::payload, and EasyDbus_elem::type.

00121 {
00122    if (elem == NULL || (elem->type != EASYDBUS_ELTYPE_BOOLEAN))
00123       return -1;
00124    return elem->payload.boolean;
00125 }

int easydbus_elem_get_byte ( const EasyDbus_elem elem,
char *  byte 
)

Get byte from byte element and save value on byte input param.

Precondition:
elem != NULL && element type == EASYDBUS_ELTYPE_BYTE byte != NULL
Parameters:
elem pointer to element object.
byte where is save byte value.
Returns:
0 ok

-1 on error

Definition at line 102 of file elem.c.

References EasyDbus_elem::byte, EASYDBUS_ELTYPE_BYTE, EasyDbus_elem::payload, and EasyDbus_elem::type.

00103 {
00104    if (elem == NULL || byte == NULL ||
00105        (elem->type != EASYDBUS_ELTYPE_BYTE))
00106       return -1;
00107    *byte = elem->payload.byte;
00108    return 0;
00109 }

const EasyDbus_container* easydbus_elem_get_container ( const EasyDbus_elem elem  ) 

Get container object from element.

Precondition:
elem != NULL && (element type == EASYDBUS_ELTYPE_ARRAY || element type == EASYDBUS_ELTYPE_STRUCT || element type == EASYDBUS_ELTYPE_VARIANT || element type == EASYDBUS_ELTYPE_DICT_ENTRY)
Parameters:
elem pointer to element object.
Returns:
pointer to container object of element

NULL on error

Definition at line 252 of file elem.c.

References EASYDBUS_ELTYPE_ARRAY, EASYDBUS_ELTYPE_DICT_ENTRY, EASYDBUS_ELTYPE_STRUCT, EASYDBUS_ELTYPE_VARIANT, EasyDbus_elem::p_container, EasyDbus_elem::payload, and EasyDbus_elem::type.

00253 {
00254    if (elem == NULL ||
00255        (elem->type != EASYDBUS_ELTYPE_ARRAY &&
00256         elem->type != EASYDBUS_ELTYPE_DICT_ENTRY &&
00257         elem->type != EASYDBUS_ELTYPE_VARIANT &&
00258         elem->type != EASYDBUS_ELTYPE_STRUCT))
00259       return NULL;
00260    return (const EasyDbus_container *) elem->payload.p_container;
00261 }

int easydbus_elem_get_double ( const EasyDbus_elem elem,
double *  d 
)

Get double from double element.

Precondition:
elem != NULL && element type == EASYDBUS_ELTYPE_DOUBLE.
Parameters:
elem pointer to element object.
d pointer to a double where it is saved element value.
Returns:
0 ok

-1 on error

Definition at line 137 of file elem.c.

References EasyDbus_elem::Double, EASYDBUS_ELTYPE_DOUBLE, EasyDbus_elem::payload, and EasyDbus_elem::type.

00138 {
00139    if (elem == NULL || d == NULL ||
00140        (elem->type != EASYDBUS_ELTYPE_DOUBLE))
00141       return -1;
00142    *d = elem->payload.Double;
00143    return 0;
00144 }

const EasyDbus_elem* easydbus_elem_get_element ( const EasyDbus_elem elem,
unsigned int  n 
)

Get n-element from element passed in input.

Precondition:
n >= 1
Parameters:
elem pointer to element object.
n element to recover
Returns:
NULL on error. If there isn't an element at position n, or elem == NULL.

pointer to element n.

Definition at line 305 of file elem.c.

References EasyDbus_elem::next.

Referenced by easydbus_method_get_element(), easydbus_reply_get_element(), and easydbus_signal_get_element().

00307 {
00308    unsigned int i;
00309    EasyDbus_elem *el = (EasyDbus_elem *) elem;
00310 
00311    if (elem == NULL || n == 0)
00312       return NULL;
00313 
00314    for (i = 1; i < n; i++) {
00315       el = el->next;
00316       if (el == NULL && i < n)
00317          break;
00318    }
00319    return (const EasyDbus_elem *) el;
00320 }

int easydbus_elem_get_i16 ( const EasyDbus_elem elem,
short *  i16 
)

Get int16 from int16 element.

Precondition:
elem != NULL && element type == EASYDBUS_ELTYPE_INT16.
Parameters:
elem pointer to element object.
i16 where it is saved element value.
Returns:
0 ok

-1 on error

Definition at line 156 of file elem.c.

References EASYDBUS_ELTYPE_INT16, EasyDbus_elem::i16, EasyDbus_elem::payload, and EasyDbus_elem::type.

00157 {
00158    if (elem == NULL || i16 == NULL ||
00159        (elem->type != EASYDBUS_ELTYPE_INT16))
00160       return -1;
00161    *i16 = elem->payload.i16;
00162    return 0;
00163 }

int easydbus_elem_get_i32 ( const EasyDbus_elem elem,
int *  i32 
)

Get int32 from int32 element.

Precondition:
elem != NULL && element type == EASYDBUS_ELTYPE_INT32.
Parameters:
elem pointer to element object.
i32 where it is saved element value.
Returns:
0 ok

-1 on error

Definition at line 212 of file elem.c.

References EASYDBUS_ELTYPE_INT32, EasyDbus_elem::i32, EasyDbus_elem::payload, and EasyDbus_elem::type.

00213 {
00214    if (elem == NULL || i32 == NULL ||
00215        (elem->type != EASYDBUS_ELTYPE_INT32))
00216       return -1;
00217    *i32 = elem->payload.i32;
00218    return 0;
00219 }

int easydbus_elem_get_i64 ( const EasyDbus_elem elem,
long long *  i64 
)

Get int64 from int64 element.

Precondition:
elem != NULL && element type == EASYDBUS_ELTYPE_INT64.
Parameters:
elem pointer to element object.
i64 where it is saved element value.
Returns:
0 ok

-1 on error

Definition at line 272 of file elem.c.

References EASYDBUS_ELTYPE_INT64, EasyDbus_elem::i64, EasyDbus_elem::payload, and EasyDbus_elem::type.

00273 {
00274    if (elem == NULL || i64 == NULL ||
00275        (elem->type != EASYDBUS_ELTYPE_INT64))
00276       return -1;
00277    *i64 = elem->payload.i64;
00278    return 0;
00279 }

const EasyDbus_elem* easydbus_elem_get_next ( const EasyDbus_elem el  )  [inline]

Get next element of element object passed in input.

Parameters:
el pointer to element object.
Returns:
NULL error or there isn't a next element.

pointer to next element.

Definition at line 329 of file elem.c.

References EasyDbus_elem::next.

00330 {
00331   return (el ? (const EasyDbus_elem *) el->next : NULL);
00332 }

const char* easydbus_elem_get_obj_path ( const EasyDbus_elem elem  ) 

Get object path string from element object.

Precondition:
elem != NULL && element type == EASYDBUS_ELTYPE_OBJECT_PATH.
Parameters:
elem pointer to element object.
Returns:
pointer to a const string of an string element.

NULL on error

Definition at line 70 of file elem.c.

References EASYDBUS_ELTYPE_OBJECT_PATH, EasyDbus_elem::payload, EasyDbus_elem::string, and EasyDbus_elem::type.

00071 {
00072    if (elem == NULL || (elem->type != EASYDBUS_ELTYPE_OBJECT_PATH))
00073       return NULL;
00074    return (const char *) elem->payload.string;
00075 }

const char* easydbus_elem_get_signature ( const EasyDbus_elem elem  ) 

Get signature string from element object.

Precondition:
elem != NULL && element type == EASYDBUS_ELTYPE_SIGNATURE
Parameters:
elem pointer to element object.
Returns:
pointer to a const string of an string element.

NULL on error

Definition at line 85 of file elem.c.

References EASYDBUS_ELTYPE_SIGNATURE, EasyDbus_elem::payload, EasyDbus_elem::string, and EasyDbus_elem::type.

00086 {
00087    if (elem == NULL || (elem->type != EASYDBUS_ELTYPE_SIGNATURE))
00088       return NULL;
00089    return (const char *) elem->payload.string;
00090 }

const char* easydbus_elem_get_string ( const EasyDbus_elem elem  ) 

Get string from string element.

Precondition:
elem != NULL && element type == EASYDBUS_ELTYPE_STRING.
Parameters:
elem pointer to element object.
Returns:
pointer to a const string of an string element.

NULL on error

Definition at line 55 of file elem.c.

References EASYDBUS_ELTYPE_STRING, EasyDbus_elem::payload, EasyDbus_elem::string, and EasyDbus_elem::type.

00056 {
00057    if (elem == NULL || (elem->type != EASYDBUS_ELTYPE_STRING))
00058       return NULL;
00059    return (const char *) elem->payload.string;
00060 }

enum el_type easydbus_elem_get_type ( const EasyDbus_elem elem  )  [inline]

Get type of element object.

Parameters:
elem pointer to element object.
Returns:
element type.
See also:
enum el_type
Returns:
EASYDBUS_ELTYPE_INVALID if elem == NULL

Definition at line 288 of file elem.c.

References EASYDBUS_ELTYPE_INVALID, and EasyDbus_elem::type.

00289 {
00290    if (elem == NULL)
00291       return EASYDBUS_ELTYPE_INVALID;
00292    return elem->type;
00293 }

int easydbus_elem_get_ui16 ( const EasyDbus_elem elem,
unsigned short *  ui16 
)

Get uint16 from uint16 element.

Precondition:
elem != NULL && element type == EASYDBUS_ELTYPE_UINT16.
Parameters:
elem pointer to element object.
ui16 where it is saved element value.
Returns:
0 ok

-1 on error

Definition at line 174 of file elem.c.

References EASYDBUS_ELTYPE_UINT16, EasyDbus_elem::payload, EasyDbus_elem::type, and EasyDbus_elem::ui16.

00176 {
00177    if (elem == NULL || ui16 == NULL ||
00178        (elem->type != EASYDBUS_ELTYPE_UINT16))
00179       return -1;
00180    *ui16 = elem->payload.ui16;
00181    return 0;
00182 }

int easydbus_elem_get_ui32 ( const EasyDbus_elem elem,
unsigned int *  ui32 
)

Get uint32 from uint32 element.

Precondition:
elem != NULL && element type == EASYDBUS_ELTYPE_UINT32.
Parameters:
elem pointer to element object.
ui32 where it is saved element value.
Returns:
0 ok

-1 on error

Definition at line 193 of file elem.c.

References EASYDBUS_ELTYPE_UINT32, EasyDbus_elem::payload, EasyDbus_elem::type, and EasyDbus_elem::ui32.

00195 {
00196    if (elem == NULL || ui32 == NULL ||
00197        (elem->type != EASYDBUS_ELTYPE_UINT32))
00198       return -1;
00199    *ui32 = elem->payload.ui32;
00200    return 0;
00201 }

int easydbus_elem_get_ui64 ( const EasyDbus_elem elem,
unsigned long long *  ui64 
)

Get uint64 from uint64 element.

Precondition:
elem != NULL && element type == EASYDBUS_ELTYPE_UINT64.
Parameters:
elem pointer to element object.
ui64 where it is saved element value.
Returns:
0 ok

-1 on error

Definition at line 230 of file elem.c.

References EASYDBUS_ELTYPE_UINT64, EasyDbus_elem::payload, EasyDbus_elem::type, and EasyDbus_elem::ui64.

00232 {
00233    if (elem == NULL || ui64 == NULL ||
00234        (elem->type != EASYDBUS_ELTYPE_UINT64))
00235       return -1;
00236    *ui64 = elem->payload.ui64;
00237    return 0;
00238 }


Generated on Thu Apr 10 10:01:17 2008 for EasyDbus-0.2 by  doxygen 1.5.4