Main Page | Modules | Data Structures | Directories | File List | Data Fields | Related Pages

marshaling and unmarshaling
[D-BUS internal implementation details]

functions to marshal/unmarshal data from the wire More...

Data Structures

union  DBusOctets8
 Union used to manipulate 8 bytes as if they were various types. More...

Defines

#define VERBOSE_DECOMPOSE   0
 Set to 1 to get a bunch of spew about disassembling the path string.

Functions

dbus_uint32_t _dbus_unpack_uint32 (int byte_order, const unsigned char *data)
 Unpacks a 32 bit unsigned integer from a data pointer.
dbus_int32_t _dbus_unpack_int32 (int byte_order, const unsigned char *data)
 Unpacks a 32 bit signed integer from a data pointer.
dbus_uint64_t _dbus_unpack_uint64 (int byte_order, const unsigned char *data)
 Unpacks a 64 bit unsigned integer from a data pointer.
dbus_int64_t _dbus_unpack_int64 (int byte_order, const unsigned char *data)
 Unpacks a 64 bit signed integer from a data pointer.
void _dbus_pack_uint32 (dbus_uint32_t value, int byte_order, unsigned char *data)
 Packs a 32 bit unsigned integer into a data pointer.
void _dbus_pack_int32 (dbus_int32_t value, int byte_order, unsigned char *data)
 Packs a 32 bit signed integer into a data pointer.
void _dbus_pack_uint64 (dbus_uint64_t value, int byte_order, unsigned char *data)
 Packs a 64 bit unsigned integer into a data pointer.
void _dbus_pack_int64 (dbus_int64_t value, int byte_order, unsigned char *data)
 Packs a 64 bit signed integer into a data pointer.
void _dbus_marshal_set_int32 (DBusString *str, int byte_order, int offset, dbus_int32_t value)
 Sets the 4 bytes at the given offset to a marshaled signed integer, replacing anything found there previously.
void _dbus_marshal_set_uint32 (DBusString *str, int byte_order, int offset, dbus_uint32_t value)
 Sets the 4 bytes at the given offset to a marshaled unsigned integer, replacing anything found there previously.
void _dbus_marshal_set_int64 (DBusString *str, int byte_order, int offset, dbus_int64_t value)
 Sets the 8 bytes at the given offset to a marshaled signed integer, replacing anything found there previously.
void _dbus_marshal_set_uint64 (DBusString *str, int byte_order, int offset, dbus_uint64_t value)
 Sets the 8 bytes at the given offset to a marshaled unsigned integer, replacing anything found there previously.
dbus_bool_t _dbus_marshal_set_string (DBusString *str, int byte_order, int offset, const DBusString *value, int len)
 Sets the existing marshaled string at the given offset with a new marshaled string.
void _dbus_marshal_set_object_path (DBusString *str, int byte_order, int offset, const char **path, int path_len)
 Sets the existing marshaled object path at the given offset to a new value.
dbus_bool_t _dbus_marshal_double (DBusString *str, int byte_order, double value)
 Marshals a double value.
dbus_bool_t _dbus_marshal_int32 (DBusString *str, int byte_order, dbus_int32_t value)
 Marshals a 32 bit signed integer value.
dbus_bool_t _dbus_marshal_uint32 (DBusString *str, int byte_order, dbus_uint32_t value)
 Marshals a 32 bit unsigned integer value.
dbus_bool_t _dbus_marshal_int64 (DBusString *str, int byte_order, dbus_int64_t value)
 Marshals a 64 bit signed integer value.
dbus_bool_t _dbus_marshal_uint64 (DBusString *str, int byte_order, dbus_uint64_t value)
 Marshals a 64 bit unsigned integer value.
dbus_bool_t _dbus_marshal_string (DBusString *str, int byte_order, const char *value)
 Marshals a UTF-8 string.
dbus_bool_t _dbus_marshal_string_len (DBusString *str, int byte_order, const char *value, int len)
 Marshals a UTF-8 string.
dbus_bool_t _dbus_marshal_byte_array (DBusString *str, int byte_order, const unsigned char *value, int len)
 Marshals a byte array.
dbus_bool_t _dbus_marshal_int32_array (DBusString *str, int byte_order, const dbus_int32_t *value, int len)
 Marshals a 32 bit signed integer array.
dbus_bool_t _dbus_marshal_uint32_array (DBusString *str, int byte_order, const dbus_uint32_t *value, int len)
 Marshals a 32 bit unsigned integer array.
dbus_bool_t _dbus_marshal_int64_array (DBusString *str, int byte_order, const dbus_int64_t *value, int len)
 Marshals a 64 bit signed integer array.
dbus_bool_t _dbus_marshal_uint64_array (DBusString *str, int byte_order, const dbus_uint64_t *value, int len)
 Marshals a 64 bit unsigned integer array.
dbus_bool_t _dbus_marshal_double_array (DBusString *str, int byte_order, const double *value, int len)
 Marshals a double array.
dbus_bool_t _dbus_marshal_string_array (DBusString *str, int byte_order, const char **value, int len)
 Marshals a string array.
dbus_bool_t _dbus_marshal_object_path (DBusString *str, int byte_order, const char **path, int path_len)
 Marshals an object path value.
double _dbus_demarshal_double (const DBusString *str, int byte_order, int pos, int *new_pos)
 Demarshals a double.
dbus_int32_t _dbus_demarshal_int32 (const DBusString *str, int byte_order, int pos, int *new_pos)
 Demarshals a 32 bit signed integer.
dbus_uint32_t _dbus_demarshal_uint32 (const DBusString *str, int byte_order, int pos, int *new_pos)
 Demarshals a 32 bit unsigned integer.
dbus_int64_t _dbus_demarshal_int64 (const DBusString *str, int byte_order, int pos, int *new_pos)
 Demarshals a 64 bit signed integer.
dbus_uint64_t _dbus_demarshal_uint64 (const DBusString *str, int byte_order, int pos, int *new_pos)
 Demarshals a 64 bit unsigned integer.
void _dbus_demarshal_basic_type (const DBusString *str, int type, void *value, int byte_order, int *pos)
 Demarshals a basic type.
char * _dbus_demarshal_string (const DBusString *str, int byte_order, int pos, int *new_pos)
 Demarshals an UTF-8 string.
dbus_bool_t _dbus_demarshal_byte_array (const DBusString *str, int byte_order, int pos, int *new_pos, unsigned char **array, int *array_len)
 Demarshals a byte array.
dbus_bool_t _dbus_demarshal_int32_array (const DBusString *str, int byte_order, int pos, int *new_pos, dbus_int32_t **array, int *array_len)
 Demarshals a 32 bit signed integer array.
dbus_bool_t _dbus_demarshal_uint32_array (const DBusString *str, int byte_order, int pos, int *new_pos, dbus_uint32_t **array, int *array_len)
 Demarshals a 32 bit unsigned integer array.
dbus_bool_t _dbus_demarshal_int64_array (const DBusString *str, int byte_order, int pos, int *new_pos, dbus_int64_t **array, int *array_len)
 Demarshals a 64 bit signed integer array.
dbus_bool_t _dbus_demarshal_uint64_array (const DBusString *str, int byte_order, int pos, int *new_pos, dbus_uint64_t **array, int *array_len)
 Demarshals a 64 bit unsigned integer array.
dbus_bool_t _dbus_demarshal_double_array (const DBusString *str, int byte_order, int pos, int *new_pos, double **array, int *array_len)
 Demarshals a double array.
dbus_bool_t _dbus_demarshal_basic_type_array (const DBusString *str, int element_type, void **array, int *array_len, int byte_order, int *pos)
 Demarshals an array of basic types.
dbus_bool_t _dbus_demarshal_string_array (const DBusString *str, int byte_order, int pos, int *new_pos, char ***array, int *array_len)
 Demarshals a string array.
dbus_bool_t _dbus_decompose_path (const char *data, int len, char ***path, int *path_len)
 Decompose an object path.
dbus_bool_t _dbus_demarshal_object_path (const DBusString *str, int byte_order, int pos, int *new_pos, char ***path, int *path_len)
 Demarshals an object path.
dbus_bool_t _dbus_marshal_get_arg_end_pos (const DBusString *str, int byte_order, int type, int pos, int *end_pos)
 Returns the position right after the end of an argument.
dbus_bool_t _dbus_marshal_validate_type (const DBusString *str, int pos, int *type, int *end_pos)
 Validates and returns a typecode at a specific position in the message.
dbus_bool_t _dbus_marshal_validate_arg (const DBusString *str, int byte_order, int depth, int type, int array_type_pos, int pos, int *end_pos)
 Validates an argument of a specific type, checking that it is well-formed, for example no ludicrous length fields, strings are nul-terminated, etc.
dbus_bool_t _dbus_type_is_valid (int typecode)
 Return TRUE if the typecode is a valid typecode.
void _dbus_verbose_bytes (const unsigned char *data, int len)
 If in verbose mode, print a block of binary data.
void _dbus_verbose_bytes_of_string (const DBusString *str, int start, int len)
 Dump the given part of the string to verbose log.
dbus_bool_t _dbus_marshal_basic_type (DBusString *str, char type, void *value, int byte_order)
 Marshals a basic type.
dbus_bool_t _dbus_marshal_basic_type_array (DBusString *str, char element_type, const void *value, int len, int byte_order)
 Marshals a basic type array.

Detailed Description

functions to marshal/unmarshal data from the wire

Types and functions related to converting primitive data types from wire format to native machine format, and vice versa.


Function Documentation

dbus_bool_t _dbus_decompose_path const char *  data,
int  len,
char ***  path,
int *  path_len
 

Decompose an object path.

A path of just "/" is represented as an empty vector of strings.

Parameters:
data the path data
len the length of the path string
path address to store new object path
path_len length of stored path

Definition at line 1636 of file dbus-marshal.c.

References _dbus_assert, _dbus_memdup(), dbus_free_string_array(), dbus_new0, FALSE, NULL, and TRUE.

Referenced by _dbus_demarshal_object_path(), dbus_connection_list_registered(), dbus_connection_register_fallback(), dbus_connection_register_object_path(), and dbus_connection_unregister_object_path().

void _dbus_demarshal_basic_type const DBusString str,
int  type,
void *  value,
int  byte_order,
int *  pos
 

Demarshals a basic type.

Parameters:
str the string containing the data
type type of value to demarshal
value pointer to return value data
byte_order the byte order
pos pointer to position in the string, updated on return to new position

Definition at line 1121 of file dbus-marshal.c.

References _dbus_assert_not_reached.

dbus_bool_t _dbus_demarshal_basic_type_array const DBusString str,
int  element_type,
void **  array,
int *  array_len,
int  byte_order,
int *  pos
 

Demarshals an array of basic types.

Parameters:
str the string containing the data
element_type type of array elements to demarshal
array pointer to pointer to array data
array_len pointer to array length
byte_order the byte order
pos pointer to position in the string, updated on return to new position

Definition at line 1503 of file dbus-marshal.c.

References _dbus_assert_not_reached, _dbus_demarshal_byte_array(), and FALSE.

dbus_bool_t _dbus_demarshal_byte_array const DBusString str,
int  byte_order,
int  pos,
int *  new_pos,
unsigned char **  array,
int *  array_len
 

Demarshals a byte array.

Todo:
Should probably demarshal to a DBusString, having memcpy() in here is Evil(tm).
Parameters:
str the string containing the data
byte_order the byte order
pos the position in the string
new_pos the new position of the string
array the array
array_len length of the demarshaled data
Returns:
TRUE on success

Definition at line 1227 of file dbus-marshal.c.

References _dbus_demarshal_uint32(), _dbus_string_get_const_data_len(), dbus_free(), dbus_malloc(), FALSE, NULL, and TRUE.

Referenced by _dbus_demarshal_basic_type_array(), and dbus_message_iter_get_custom().

double _dbus_demarshal_double const DBusString str,
int  byte_order,
int  pos,
int *  new_pos
 

Demarshals a double.

Parameters:
str the string containing the data
byte_order the byte order
pos the position in the string
new_pos the new position of the string
Returns:
the demarshaled double.

Definition at line 1014 of file dbus-marshal.c.

References DBusOctets8::d.

dbus_bool_t _dbus_demarshal_double_array const DBusString str,
int  byte_order,
int  pos,
int *  new_pos,
double **  array,
int *  array_len
 

Demarshals a double array.

Parameters:
str the string containing the data
byte_order the byte order
pos the position in the string
new_pos the new position of the string
array the array
array_len length of the demarshaled data
Returns:
TRUE on success

Definition at line 1479 of file dbus-marshal.c.

dbus_int32_t _dbus_demarshal_int32 const DBusString str,
int  byte_order,
int  pos,
int *  new_pos
 

Demarshals a 32 bit signed integer.

Parameters:
str the string containing the data
byte_order the byte order
pos the position in the string
new_pos the new position of the string
Returns:
the demarshaled integer.

Definition at line 1036 of file dbus-marshal.c.

dbus_bool_t _dbus_demarshal_int32_array const DBusString str,
int  byte_order,
int  pos,
int *  new_pos,
dbus_int32_t **  array,
int *  array_len
 

Demarshals a 32 bit signed integer array.

Parameters:
str the string containing the data
byte_order the byte order
pos the position in the string
new_pos the new position of the string
array the array
array_len length of the demarshaled data
Returns:
TRUE on success

Definition at line 1383 of file dbus-marshal.c.

dbus_int64_t _dbus_demarshal_int64 const DBusString str,
int  byte_order,
int  pos,
int *  new_pos
 

Demarshals a 64 bit signed integer.

Parameters:
str the string containing the data
byte_order the byte order
pos the position in the string
new_pos the new position of the string
Returns:
the demarshaled integer.

Definition at line 1074 of file dbus-marshal.c.

References DBusOctets8::s.

dbus_bool_t _dbus_demarshal_int64_array const DBusString str,
int  byte_order,
int  pos,
int *  new_pos,
dbus_int64_t **  array,
int *  array_len
 

Demarshals a 64 bit signed integer array.

Parameters:
str the string containing the data
byte_order the byte order
pos the position in the string
new_pos the new position of the string
array the array
array_len length of the demarshaled data
Returns:
TRUE on success

Definition at line 1431 of file dbus-marshal.c.

dbus_bool_t _dbus_demarshal_object_path const DBusString str,
int  byte_order,
int  pos,
int *  new_pos,
char ***  path,
int *  path_len
 

Demarshals an object path.

A path of just "/" is represented as an empty vector of strings.

Parameters:
str the string containing the data
byte_order the byte order
pos the position in the string
new_pos the new position of the string
path address to store new object path
path_len length of stored path

Definition at line 1723 of file dbus-marshal.c.

References _dbus_decompose_path(), _dbus_demarshal_uint32(), _dbus_string_get_const_data_len(), FALSE, and TRUE.

char* _dbus_demarshal_string const DBusString str,
int  byte_order,
int  pos,
int *  new_pos
 

Demarshals an UTF-8 string.

Todo:
Should we check the string to make sure that it's valid UTF-8, and maybe "fix" the string if it's broken?

Todo:
Should probably demarshal to a DBusString, having memcpy() in here is Evil(tm).
Parameters:
str the string containing the data
byte_order the byte order
pos the position in the string
new_pos the new position of the string
Returns:
the demarshaled string.

Definition at line 1182 of file dbus-marshal.c.

References _dbus_demarshal_uint32(), _dbus_string_get_const_data_len(), dbus_malloc(), and NULL.

Referenced by _dbus_demarshal_string_array(), dbus_message_iter_get_custom(), dbus_message_iter_get_dict_key(), dbus_message_iter_get_object_path(), and dbus_message_iter_get_string().

dbus_bool_t _dbus_demarshal_string_array const DBusString str,
int  byte_order,
int  pos,
int *  new_pos,
char ***  array,
int *  array_len
 

Demarshals a string array.

Parameters:
str the string containing the data
byte_order the byte order
pos the position in the string
new_pos the new position of the string
array the array
array_len location for length of the demarshaled data or NULL
Returns:
TRUE on success

Definition at line 1549 of file dbus-marshal.c.

References _dbus_demarshal_string(), _dbus_demarshal_uint32(), dbus_free(), dbus_new, dbus_realloc(), FALSE, NULL, and TRUE.

Referenced by dbus_message_iter_get_object_path_array(), and dbus_message_iter_get_string_array().

dbus_uint32_t _dbus_demarshal_uint32 const DBusString str,
int  byte_order,
int  pos,
int *  new_pos
 

Demarshals a 32 bit unsigned integer.

Parameters:
str the string containing the data
byte_order the byte order
pos the position in the string
new_pos the new position of the string
Returns:
the demarshaled integer.

Definition at line 1054 of file dbus-marshal.c.

Referenced by _dbus_demarshal_byte_array(), _dbus_demarshal_object_path(), _dbus_demarshal_string(), _dbus_demarshal_string_array(), _dbus_marshal_get_arg_end_pos(), _dbus_marshal_set_string(), dbus_message_iter_init_array_iterator(), and dbus_message_iter_init_dict_iterator().

dbus_bool_t _dbus_demarshal_uint32_array const DBusString str,
int  byte_order,
int  pos,
int *  new_pos,
dbus_uint32_t **  array,
int *  array_len
 

Demarshals a 32 bit unsigned integer array.

Parameters:
str the string containing the data
byte_order the byte order
pos the position in the string
new_pos the new position of the string
array the array
array_len length of the demarshaled data
Returns:
TRUE on success

Definition at line 1406 of file dbus-marshal.c.

dbus_uint64_t _dbus_demarshal_uint64 const DBusString str,
int  byte_order,
int  pos,
int *  new_pos
 

Demarshals a 64 bit unsigned integer.

Parameters:
str the string containing the data
byte_order the byte order
pos the position in the string
new_pos the new position of the string
Returns:
the demarshaled integer.

Definition at line 1096 of file dbus-marshal.c.

References DBusOctets8::u.

dbus_bool_t _dbus_demarshal_uint64_array const DBusString str,
int  byte_order,
int  pos,
int *  new_pos,
dbus_uint64_t **  array,
int *  array_len
 

Demarshals a 64 bit unsigned integer array.

Parameters:
str the string containing the data
byte_order the byte order
pos the position in the string
new_pos the new position of the string
array the array
array_len length of the demarshaled data
Returns:
TRUE on success

Definition at line 1454 of file dbus-marshal.c.

dbus_bool_t _dbus_marshal_basic_type DBusString str,
char  type,
void *  value,
int  byte_order
 

Marshals a basic type.

Parameters:
str string to marshal to
type type of value
value pointer to value
byte_order byte order
Returns:
TRUE on success

Definition at line 2537 of file dbus-marshal.c.

References _dbus_assert_not_reached, _dbus_marshal_double(), _dbus_marshal_uint64(), _dbus_string_append_byte(), and FALSE.

dbus_bool_t _dbus_marshal_basic_type_array DBusString str,
char  element_type,
const void *  value,
int  len,
int  byte_order
 

Marshals a basic type array.

Parameters:
str string to marshal to
element_type type of array elements
value pointer to value
len length of value data in elements
byte_order byte order
Returns:
TRUE on success

Definition at line 2582 of file dbus-marshal.c.

References _dbus_assert_not_reached, _dbus_marshal_byte_array(), and FALSE.

dbus_bool_t _dbus_marshal_byte_array DBusString str,
int  byte_order,
const unsigned char *  value,
int  len
 

Marshals a byte array.

Parameters:
str the string to append the marshalled value to
byte_order the byte order to use
value the array
len number of elements in the array
Returns:
TRUE on success

Definition at line 660 of file dbus-marshal.c.

References _dbus_marshal_uint32(), _dbus_string_append_len(), _dbus_string_set_length(), FALSE, and TRUE.

Referenced by _dbus_marshal_basic_type_array(), and dbus_message_iter_append_custom().

dbus_bool_t _dbus_marshal_double DBusString str,
int  byte_order,
double  value
 

Marshals a double value.

Parameters:
str the string to append the marshalled value to
byte_order the byte order to use
value the value
Returns:
TRUE on success

Definition at line 496 of file dbus-marshal.c.

References DBusOctets8::d.

Referenced by _dbus_marshal_basic_type().

dbus_bool_t _dbus_marshal_double_array DBusString str,
int  byte_order,
const double *  value,
int  len
 

Marshals a double array.

Parameters:
str the string to append the marshalled value to
byte_order the byte order to use
value the array
len the length of the array
Returns:
TRUE on success

Definition at line 867 of file dbus-marshal.c.

dbus_bool_t _dbus_marshal_get_arg_end_pos const DBusString str,
int  byte_order,
int  type,
int  pos,
int *  end_pos
 

Returns the position right after the end of an argument.

PERFORMS NO VALIDATION WHATSOEVER. The message must have been previously validated.

Parameters:
str a string
byte_order the byte order to use
type the type of the argument
pos the pos where the arg starts
end_pos pointer where the position right after the end position will follow
Returns:
TRUE if more data exists after the arg

Definition at line 1759 of file dbus-marshal.c.

References _dbus_assert_not_reached, _dbus_demarshal_uint32(), _dbus_warn(), FALSE, and TRUE.

Referenced by dbus_message_iter_has_next(), and dbus_message_iter_next().

dbus_bool_t _dbus_marshal_int32 DBusString str,
int  byte_order,
dbus_int32_t  value
 

Marshals a 32 bit signed integer value.

Parameters:
str the string to append the marshalled value to
byte_order the byte order to use
value the value
Returns:
TRUE on success

Definition at line 514 of file dbus-marshal.c.

dbus_bool_t _dbus_marshal_int32_array DBusString str,
int  byte_order,
const dbus_int32_t value,
int  len
 

Marshals a 32 bit signed integer array.

Parameters:
str the string to append the marshalled value to
byte_order the byte order to use
value the array
len the length of the array
Returns:
TRUE on success

Definition at line 783 of file dbus-marshal.c.

dbus_bool_t _dbus_marshal_int64 DBusString str,
int  byte_order,
dbus_int64_t  value
 

Marshals a 64 bit signed integer value.

Parameters:
str the string to append the marshalled value to
byte_order the byte order to use
value the value
Returns:
TRUE on success

Definition at line 548 of file dbus-marshal.c.

References DBusOctets8::s.

dbus_bool_t _dbus_marshal_int64_array DBusString str,
int  byte_order,
const dbus_int64_t value,
int  len
 

Marshals a 64 bit signed integer array.

Parameters:
str the string to append the marshalled value to
byte_order the byte order to use
value the array
len the length of the array
Returns:
TRUE on success

Definition at line 825 of file dbus-marshal.c.

dbus_bool_t _dbus_marshal_object_path DBusString str,
int  byte_order,
const char **  path,
int  path_len
 

Marshals an object path value.

Parameters:
str the string to append the marshalled value to
byte_order the byte order to use
path the path
path_len length of the path
Returns:
TRUE on success

Definition at line 930 of file dbus-marshal.c.

References _dbus_marshal_set_uint32(), _dbus_marshal_uint32(), _dbus_string_append(), _dbus_string_append_byte(), _dbus_string_set_length(), FALSE, and TRUE.

void _dbus_marshal_set_int32 DBusString str,
int  byte_order,
int  offset,
dbus_int32_t  value
 

Sets the 4 bytes at the given offset to a marshaled signed integer, replacing anything found there previously.

Parameters:
str the string to write the marshalled int to
offset the byte offset where int should be written
byte_order the byte order to use
value the value

Definition at line 320 of file dbus-marshal.c.

void _dbus_marshal_set_int64 DBusString str,
int  byte_order,
int  offset,
dbus_int64_t  value
 

Sets the 8 bytes at the given offset to a marshaled signed integer, replacing anything found there previously.

Parameters:
str the string to write the marshalled int to
offset the byte offset where int should be written
byte_order the byte order to use
value the value

Definition at line 360 of file dbus-marshal.c.

References DBusOctets8::s.

void _dbus_marshal_set_object_path DBusString str,
int  byte_order,
int  offset,
const char **  path,
int  path_len
 

Sets the existing marshaled object path at the given offset to a new value.

The given offset must point to an existing object path or this function doesn't make sense.

Todo:
implement this function
Parameters:
str the string to write the marshalled path to
offset the byte offset where path should be written
byte_order the byte order to use
path the new path
path_len number of elements in the path

Definition at line 449 of file dbus-marshal.c.

dbus_bool_t _dbus_marshal_set_string DBusString str,
int  byte_order,
int  offset,
const DBusString value,
int  len
 

Sets the existing marshaled string at the given offset with a new marshaled string.

The given offset must point to an existing string or the wrong length will be deleted and replaced with the new string.

Note: no attempt is made by this function to re-align any data which has been already marshalled after this string. Use with caution.

Parameters:
str the string to write the marshalled string to
offset the byte offset where string should be written
byte_order the byte order to use
value the value
len the length to use
Returns:
TRUE on success

Definition at line 411 of file dbus-marshal.c.

References _dbus_assert, _dbus_demarshal_uint32(), _dbus_marshal_set_uint32(), _dbus_string_replace_len(), FALSE, NULL, and TRUE.

void _dbus_marshal_set_uint32 DBusString str,
int  byte_order,
int  offset,
dbus_uint32_t  value
 

Sets the 4 bytes at the given offset to a marshaled unsigned integer, replacing anything found there previously.

Parameters:
str the string to write the marshalled int to
offset the byte offset where int should be written
byte_order the byte order to use
value the value

Definition at line 339 of file dbus-marshal.c.

Referenced by _dbus_marshal_object_path(), _dbus_marshal_set_string(), _dbus_marshal_string_array(), _dbus_message_lock(), and _dbus_message_set_serial().

void _dbus_marshal_set_uint64 DBusString str,
int  byte_order,
int  offset,
dbus_uint64_t  value
 

Sets the 8 bytes at the given offset to a marshaled unsigned integer, replacing anything found there previously.

Parameters:
str the string to write the marshalled int to
offset the byte offset where int should be written
byte_order the byte order to use
value the value

Definition at line 381 of file dbus-marshal.c.

References DBusOctets8::u.

dbus_bool_t _dbus_marshal_string DBusString str,
int  byte_order,
const char *  value
 

Marshals a UTF-8 string.

Todo:
: If the string append fails we need to restore the old length. (also for other marshallers)
Parameters:
str the string to append the marshalled value to
byte_order the byte order to use
value the string
Returns:
TRUE on success

Definition at line 589 of file dbus-marshal.c.

References _dbus_marshal_uint32(), _dbus_string_append_len(), _dbus_string_set_length(), and FALSE.

Referenced by _dbus_marshal_string_array(), dbus_message_iter_append_custom(), dbus_message_iter_append_dict_key(), dbus_message_iter_append_object_path(), and dbus_message_iter_append_string().

dbus_bool_t _dbus_marshal_string_array DBusString str,
int  byte_order,
const char **  value,
int  len
 

Marshals a string array.

Parameters:
str the string to append the marshalled value to
byte_order the byte order to use
value the array
len the length of the array
Returns:
TRUE on success

Definition at line 887 of file dbus-marshal.c.

References _dbus_marshal_set_uint32(), _dbus_marshal_string(), _dbus_marshal_uint32(), _dbus_string_set_length(), FALSE, and TRUE.

Referenced by dbus_message_iter_append_object_path_array(), and dbus_message_iter_append_string_array().

dbus_bool_t _dbus_marshal_string_len DBusString str,
int  byte_order,
const char *  value,
int  len
 

Marshals a UTF-8 string.

Todo:
: If the string append fails we need to restore the old length. (also for other marshallers)
Parameters:
str the string to append the marshalled value to
byte_order the byte order to use
value the string
len length of string to marshal in bytes
Returns:
TRUE on success

Definition at line 623 of file dbus-marshal.c.

References _dbus_marshal_uint32(), _dbus_string_append_len(), _dbus_string_lengthen(), _dbus_string_set_length(), FALSE, and TRUE.

dbus_bool_t _dbus_marshal_uint32 DBusString str,
int  byte_order,
dbus_uint32_t  value
 

Marshals a 32 bit unsigned integer value.

Parameters:
str the string to append the marshalled value to
byte_order the byte order to use
value the value
Returns:
TRUE on success

Definition at line 530 of file dbus-marshal.c.

Referenced by _dbus_marshal_byte_array(), _dbus_marshal_object_path(), _dbus_marshal_string(), _dbus_marshal_string_array(), _dbus_marshal_string_len(), dbus_message_iter_append_array(), and dbus_message_iter_append_dict().

dbus_bool_t _dbus_marshal_uint32_array DBusString str,
int  byte_order,
const dbus_uint32_t value,
int  len
 

Marshals a 32 bit unsigned integer array.

Parameters:
str the string to append the marshalled value to
byte_order the byte order to use
value the array
len the length of the array
Returns:
TRUE on success

Definition at line 803 of file dbus-marshal.c.

dbus_bool_t _dbus_marshal_uint64 DBusString str,
int  byte_order,
dbus_uint64_t  value
 

Marshals a 64 bit unsigned integer value.

Parameters:
str the string to append the marshalled value to
byte_order the byte order to use
value the value
Returns:
TRUE on success

Definition at line 566 of file dbus-marshal.c.

References DBusOctets8::u.

Referenced by _dbus_marshal_basic_type().

dbus_bool_t _dbus_marshal_uint64_array DBusString str,
int  byte_order,
const dbus_uint64_t value,
int  len
 

Marshals a 64 bit unsigned integer array.

Parameters:
str the string to append the marshalled value to
byte_order the byte order to use
value the array
len the length of the array
Returns:
TRUE on success

Definition at line 845 of file dbus-marshal.c.

dbus_bool_t _dbus_marshal_validate_arg const DBusString str,
int  byte_order,
int  depth,
int  type,
int  array_type_pos,
int  pos,
int *  end_pos
 

Validates an argument of a specific type, checking that it is well-formed, for example no ludicrous length fields, strings are nul-terminated, etc.

Returns the end position of the argument in end_pos, and returns TRUE if a valid arg begins at "pos"

Todo:
security: need to audit this function.
Parameters:
str a string
byte_order the byte order to use
depth current recursion depth, to prevent excessive recursion
type the type of the argument
array_type_pos the position of the current array type, or -1 if not in an array
pos the pos where the arg starts
end_pos pointer where the position right after the end position will follow
Returns:
TRUE if the arg is valid.

Definition at line 2098 of file dbus-marshal.c.

References _dbus_marshal_validate_arg(), _dbus_marshal_validate_type(), _dbus_string_validate_nul(), _dbus_string_validate_path(), _dbus_verbose_bytes_of_string(), FALSE, NULL, and TRUE.

Referenced by _dbus_marshal_validate_arg().

dbus_bool_t _dbus_marshal_validate_type const DBusString str,
int  pos,
int *  type,
int *  end_pos
 

Validates and returns a typecode at a specific position in the message.

Parameters:
str a string
type the type of the argument
pos the pos where the typecode starts
end_pos pointer where the position right after the end position will follow
Returns:
TRUE if the type is valid.

Definition at line 1957 of file dbus-marshal.c.

References _dbus_string_get_const_data_len(), _dbus_type_is_valid(), FALSE, NULL, and TRUE.

Referenced by _dbus_marshal_validate_arg().

void _dbus_pack_int32 dbus_int32_t  value,
int  byte_order,
unsigned char *  data
 

Packs a 32 bit signed integer into a data pointer.

Parameters:
value the value
byte_order the byte order to use
data the data pointer

Definition at line 234 of file dbus-marshal.c.

void _dbus_pack_int64 dbus_int64_t  value,
int  byte_order,
unsigned char *  data
 

Packs a 64 bit signed integer into a data pointer.

Parameters:
value the value
byte_order the byte order to use
data the data pointer

Definition at line 267 of file dbus-marshal.c.

References DBusOctets8::s.

void _dbus_pack_uint32 dbus_uint32_t  value,
int  byte_order,
unsigned char *  data
 

Packs a 32 bit unsigned integer into a data pointer.

Parameters:
value the value
byte_order the byte order to use
data the data pointer

Definition at line 219 of file dbus-marshal.c.

void _dbus_pack_uint64 dbus_uint64_t  value,
int  byte_order,
unsigned char *  data
 

Packs a 64 bit unsigned integer into a data pointer.

Parameters:
value the value
byte_order the byte order to use
data the data pointer

Definition at line 250 of file dbus-marshal.c.

References DBusOctets8::u.

dbus_bool_t _dbus_type_is_valid int  typecode  ) 
 

Return TRUE if the typecode is a valid typecode.

Returns:
TRUE if valid

Definition at line 2392 of file dbus-marshal.c.

References FALSE, and TRUE.

Referenced by _dbus_marshal_validate_type().

dbus_int32_t _dbus_unpack_int32 int  byte_order,
const unsigned char *  data
 

Unpacks a 32 bit signed integer from a data pointer.

Parameters:
byte_order The byte order to use
data the data pointer
Returns:
the integer

Definition at line 134 of file dbus-marshal.c.

dbus_int64_t _dbus_unpack_int64 int  byte_order,
const unsigned char *  data
 

Unpacks a 64 bit signed integer from a data pointer.

Parameters:
byte_order The byte order to use
data the data pointer
Returns:
the integer

Definition at line 167 of file dbus-marshal.c.

References DBusOctets8::s.

dbus_uint32_t _dbus_unpack_uint32 int  byte_order,
const unsigned char *  data
 

Unpacks a 32 bit unsigned integer from a data pointer.

Parameters:
byte_order The byte order to use
data the data pointer
Returns:
the integer

Definition at line 120 of file dbus-marshal.c.

Referenced by _dbus_message_loader_queue_messages(), and _dbus_verbose_bytes().

dbus_uint64_t _dbus_unpack_uint64 int  byte_order,
const unsigned char *  data
 

Unpacks a 64 bit unsigned integer from a data pointer.

Parameters:
byte_order The byte order to use
data the data pointer
Returns:
the integer

Definition at line 149 of file dbus-marshal.c.

References DBusOctets8::u.

void _dbus_verbose_bytes const unsigned char *  data,
int  len
 

If in verbose mode, print a block of binary data.

Todo:
right now it prints even if not in verbose mode
Parameters:
data the data
len the length of the data

Definition at line 2425 of file dbus-marshal.c.

References _dbus_assert, and _dbus_unpack_uint32().

Referenced by _dbus_verbose_bytes_of_string().

void _dbus_verbose_bytes_of_string const DBusString str,
int  start,
int  len
 

Dump the given part of the string to verbose log.

Parameters:
str the string
start the start of range to dump
len length of range

Definition at line 2497 of file dbus-marshal.c.

References _dbus_assert, _dbus_string_get_const_data_len(), and _dbus_verbose_bytes().

Referenced by _dbus_marshal_validate_arg(), _dbus_read(), and _dbus_write().


Generated on Wed Mar 30 21:15:24 2005 for D-BUS by  doxygen 1.4.1