Container Interactions in C for RAD

The following are the RAD container actions in the C language:

conerr_t rad_cont_insert(rad_container_t *container, adr_name_t *name, rad_instance_t *instance);
conerr_t rad_cont_insert_singleton(rad_container_t *container, adr_name_t *name, rad_object_t *object);

Creates an instance, rad_instance_t, using the supplied name and object and then inserts it into container. If the operation succeeds, CE_OK is returned.

void rad_cont_remove(rad_container_t *container, adr_name_t *name);

Removes the instance from the container.

conerr_t rad_cont_register_dynamic(rad_container_t *container, adr_name_t *name, rad_modinfo_t *modinfo, rad_dyn_list_t listf, rad_dyn_lookup_t lookupf, void *arg);
conerr_t (*rad_dyn_list_t)(adr_pattern_t *pattern, adr_data_t **data, void *arg);
conerr_t (*rad_dyn_lookup_t)(adr_name_t **name, rad_instance_t **inst, void *arg);

Registers a dynamic container instance manager. This is the container in which the instances will be managed. The name defines the name filter for which this instance manager is responsible. A typical name would define the type of the instance which are managed. For example, zname = adr_name_vcreate (MOD_DOMAIN, 1, "type", "Zone") would be responsible for managing all instances with a type of "Zone". listf is a user-supplied function which is invoked when objects with the matching pattern are listed. lookupf is a user-supplied function which is invoked when objects with the matching name are looked up. arg is stored and provided in the callback to the user functions.