Diffusion C API  6.8.7
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
utils.h File Reference

Miscellaneous utility functions that don't fit anywhere else. More...

Functions

char * uint32_to_str (uint32_t val)
 Safely convert an unsigned integer to a NULL-terminated string. More...
 
char * int_to_str (int val)
 Safely convert a signed integer to a NULL-terminated string. More...
 
char * double_to_str (double val)
 Safely convert a signed double to a NULL-terminated string. More...
 
uint32_t float_to_uint32 (float f)
 Encode an ieee754 float as a uint32_t (4 bytes). More...
 
float uint32_to_float (uint32_t i)
 Decocde an ieee754 float from a 4-byte unsigned int. More...
 
char * selector_get_prefix (const char *selector)
 Returns the largest non-regexp part of a topic selector. More...
 
char * diffusion_escape (const char *string)
 Escapes special characters in a string that is to be used within a topic property or a session filter. More...
 
SET_Tdiffusion_string_to_roles (const char *string)
 Utility method which converts a string of the format required by the $Roles session property into a mutable set of strings. More...
 
char * diffusion_roles_to_string (const SET_T *roles)
 Utility method which converts a set of authorisation roles to the string format required by the $Roles session property. More...
 
bool string_ends_with (const char *string, const char *suffix)
 Determines if str terminates with suffix.
 
bool string_starts_with (const char *string, const char *prefix)
 Determines if str starts with prefix.
 
SET_Thash_to_set (HASH_T *hash, int(*cmp_fn)(const void *, const void *))
 Converts a HASH_T into a SET_T with the same value pointers. More...
 

Detailed Description

Miscellaneous utility functions that don't fit anywhere else.

Function Documentation

char* diffusion_escape ( const char *  string)

Escapes special characters in a string that is to be used within a topic property or a session filter.

This is a convenience method which inserts an escape character '\' before any of the special characters ' " or .

Parameters
stringthe string to be escaped. If NULL, then NULL will be returned
Returns
the string value with escape characters inserted as appropriate
char* diffusion_roles_to_string ( const SET_T roles)

Utility method which converts a set of authorisation roles to the string format required by the $Roles session property.

Parameters
rolesA set of roles. If NULL, then NULL will be returned from this function.
Returns
a string representing the supplied roles, formatted as required by the $Roles session property
SET_T* diffusion_string_to_roles ( const char *  string)

Utility method which converts a string of the format required by the $Roles session property into a mutable set of strings.

Parameters
stringThe string with quoted roles separated by whitespace or commas. If NULL, then NULL will be returned from this function.
Returns
set of roles
char* double_to_str ( double  val)

Safely convert a signed double to a NULL-terminated string.

The "float" format specifier is used. The caller should free the return value after use.

Parameters
valThe signed double to convert.
Returns
A NULL-terminated string or NULL if the conversion failed.
uint32_t float_to_uint32 ( float  f)

Encode an ieee754 float as a uint32_t (4 bytes).

Parameters
fFloat to encode
Returns
A uint32_t
SET_T* hash_to_set ( HASH_T hash,
int(*)(const void *, const void *)  cmp_fn 
)

Converts a HASH_T into a SET_T with the same value pointers.

Parameters
hashthe hash map
cmp_fna function that compares the values of the hash map
Returns
a set containing the values of the hash map
char* int_to_str ( int  val)

Safely convert a signed integer to a NULL-terminated string.

The caller should free the return value after use.

Parameters
valThe signed integer to convert.
Returns
A NULL-terminated string or NULL if the conversion failed.
char* selector_get_prefix ( const char *  selector)

Returns the largest non-regexp part of a topic selector.

Parameters
selectorThe topic selector to analyse.
Returns
A pointer to a char array, which should be freed by the caller.
float uint32_to_float ( uint32_t  i)

Decocde an ieee754 float from a 4-byte unsigned int.

Parameters
iuint32_t containing IEEE754-encoded data.
Returns
A float
char* uint32_to_str ( uint32_t  val)

Safely convert an unsigned integer to a NULL-terminated string.

The caller should free the return value after use.

Parameters
valThe unsigned integer to convert.
Return values
ANULL-terminated string or NULL if the conversion failed.