Product Install Registry Library Functions
wsreg_unregister(3WSREG)
NAME
wsreg_unregister - remove a component from the product
install registrySYNOPSIS
cc [flag ...] file ...-lwsreg [library ...]
#include
int wsreg_unregister(const Wsreg_component *comp);
DESCRIPTION
The wsreg_unregister() function removes the component speci-
fied by comp from the product install registry. The com-
ponent will only be removed if the comp argument has a matching uuid, instance, and version. Usually, the component retrieved through a call towsreg_get(3WSREG) before being passed to the
wsreg_unregister() function.
If the component has required components, the respective dependent components will be updated to reflect the change.A component that has dependent components cannot be unre-
gistered until the dependent components are uninstalled and unregistered.RETURN VALUES
Upon successful completion, a non-zero return value is
returned. If the component could not be unregistered, 0 is returned.EXAMPLES
Example 1 Unregister a component.The following example demonstrates how to unregister a com-
ponent.#include
#include
int main(int argc, char **argv) {char *uuid = "d6cf2869-1dd1-11b2-9fcb-080020b69971";
char *location = "/usr/local/example1_component";
SunOS 5.11 Last change: 22 Sep 2000 1
Product Install Registry Library Functionswsreg_unregister(3WSREG)
Wsreg_query *query = NULL;
Wsreg_component *comp = NULL;
/* Initialize the registry */wsreg_initialize(WSREG_INIT_NORMAL, NULL);
/* Query for the component */query = wsreg_query_create();
wsreg_query_set_id(query, uuid);
wsreg_query_set_location(query, location);
comp = wsreg_get(query);
if (comp != NULL) { /* The query succeeded. The component has been found. */Wsreg_component **dependent_comps;
dependent_comps = wsreg_get_dependent_components(comp);
if (dependent_comps != NULL) {
/* * The component has dependent components. The * component cannot be unregistered. */wsreg_free_component_array(dependent_comps);
printf("The component cannot be uninstalled because " "it has dependent components\n"); } else { /* * The component does not have dependent components. * It can be unregistered. */if (wsreg_unregister(comp) != 0) {
printf("wsreg_unregister succeeded\n");
} else { printf("unregister failed\n"); } } /* Be sure to free the component */wsreg_free_component(comp);
} else { /* The component is not currently registered. */ printf("The component was not found in the registry\n"); }wsreg_query_free(query);
}USAGE
Components should be unregistered before uninstallation. If the component cannot be unregistered, uninstallation should not be performed.SunOS 5.11 Last change: 22 Sep 2000 2
Product Install Registry Library Functionswsreg_unregister(3WSREG)
A component cannot be unregistered if other registered com-
ponents require it. A call towsreg_get_dependent_components() can be used to determine if
this situation exists. Seewsreg_add_dependent_component(3WSREG).
A successful unregistration of a component will result in all components required by the unregistered component beingupdated in the product install registry to remove the depen-
dency. Also, child components will be updated so the unre-
gistered component is no longer registered as their parent. When unregistering a product, the product should first be unregistered, followed by the unregistration of its first feature and then the unregistration and uninstallation of the components that comprise that feature. Be sure to usethis top-down approach to avoid removing a component that
belongs to a product or feature that is required by a separate product.ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| MT-Level | Unsafe |
|_____________________________|_____________________________|
SEE ALSO
wsreg_add_dependent_component(3WSREG), wsreg_get(3WSREG),
wsreg_initialize(3WSREG), wsreg_register(3WSREG), attri-
butes(5)SunOS 5.11 Last change: 22 Sep 2000 3
Product Install Registry Library Functionswsreg_unregister(3WSREG)
SunOS 5.11 Last change: 22 Sep 2000 4