Remote Administration Daemon Developer Guide

Exit Print View

Updated: July 2014
 
 

Accessing Simple adr_data_t Values

rad/adr.h defines macros that behave like the following prototypes:

const char *adr_data_to_string(adr_data_t *data);
 
int adr_data_to_integer(adr_data_t *data);
 
unsigned int adr_data_to_uinteger(adr_data_t *data);
 
long long adr_data_to_longint(adr_data_t *data);
 
unsigned long long adr_data_to_ulongint(adr_data_t *data);
 
boolean_t adr_data_to_boolean(adr_data_t *data);
 
adr_name_t *adr_data_to_name(adr_data_t *data);
 
const char *adr_data_to_secret(adr_data_t *data);
 
float adr_data_to_float(adr_data_t *data);
 
double adr_data_to_double(adr_data_t *data);
 
const char * adr_data_to_opaque(adr_data_t *data);
 
long long adr_data_to_time_secs(adr_data_t *data);
 
int adr_data_to_time_nsecs(adr_data_t *data);

In all cases, pointer return values will point to data that is guaranteed to exist only as long as the caller retains their reference to the data parameter.

Additionally, the following functions are provided for interpreting enumeration values:

const char *adr_enum_tostring(adr_data_t *data);
int adr_enum_tovalue(adr_data_t *data);

adr_enum_tostring maps data to the value's string name. adr_enum_tovalue maps data to its scalar value.

The behavior is undefined if a macro or function is called on an adr_data_t of the wrong type.