Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

wsreg_remove_dependent_component(3wsreg) [sunos man page]

wsreg_add_dependent_component(3WSREG)		    Product Install Registry Library Functions		     wsreg_add_dependent_component(3WSREG)

NAME
wsreg_add_dependent_component, wsreg_remove_dependent_component, wsreg_get_dependent_components - add or remove a dependent component SYNOPSIS
cc [flag ...] file ...-lwsreg [library ...] #include <wsreg.h> int wsreg_add_dependent_component(Wsreg_component *comp, const Wsreg_component *dependentComp); int wsreg_remove_dependent_component(Wsreg_component *comp, const Wsreg_component *dependentComp); Wsreg_component **wsreg_get_dependent_components(const Wsreg_component *comp); DESCRIPTION
The wsreg_add_dependent_component() function adds the component specified by dependentComp to the list of dependent components contained in the component specified by comp. The wsreg_remove_dependent_component() function removes the component specified by dependentComp from the list of dependent components con- tained in the component specified by comp. The wsreg_get_dependent_components() function returns the list of dependent components contained in the component specified by comp. RETURN VALUES
The wsreg_add_dependent_component() function returns a non-zero value if the specified dependent component was successfully added; other- wise, 0 is returned. The wsreg_remove_dependent_component() function returns a non-zero value if the specified dependent component was successfully removed; otherwise, 0 is returned. The wsreg_get_dependent_components() function returns a null-terminated array of Wsreg_component pointers that represents the specified component's list of dependent components. If the specified component has no dependent components, NULL is returned. The resulting array must be released by the caller through a call to wsreg_free_component_array(). See wsreg_create_component(3WSREG). USAGE
The relationship between two components in which one must be installed for the other to be complete is a dependent/required relationship. The component that is required by the other component is the required component. The component that requires the other is the dependent component. The required component must be installed and registered before the dependent component can be. Uninstaller applications should check the registry before uninstalling and unregistering components so a successful uninstallation of one product will not result in another product being compromised. Read access to the product install registry is required to use these functions because these relationships are held with lightweight compo- nent references that can only be fully resolved using the registry contents. The act of registering a component having required components results in the converse dependent relationships being established automati- cally. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |MT-Level |Unsafe | +-----------------------------+-----------------------------+ SEE ALSO
wsreg_add_required_component(3WSREG), wsreg_can_access_registry(3WSREG), wsreg_create_component(3WSREG), wsreg_initialize(3WSREG), wsreg_register(3WSREG), attributes(5) SunOS 5.10 22 Sep 2000 wsreg_add_dependent_component(3WSREG)

Check Out this Related Man Page

wsreg_unregister(3WSREG)			    Product Install Registry Library Functions				  wsreg_unregister(3WSREG)

NAME
wsreg_unregister - remove a component from the product install registry SYNOPSIS
cc [flag ...] file ...-lwsreg [library ...] #include <wsreg.h> int wsreg_unregister(const Wsreg_component *comp); DESCRIPTION
The wsreg_unregister() function removes the component specified by comp from the product install registry. The component will only be removed if the comp argument has a matching uuid, instance, and version. Usually, the component retrieved through a call to wsreg_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 unregistered 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 component. #include <stdio.h> #include <wsreg.h> int main(int argc, char **argv) { char *uuid = "d6cf2869-1dd1-11b2-9fcb-080020b69971"; char *location = "/usr/local/example1_component"; 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 "); } else { /* * The component does not have dependent components. * It can be unregistered. */ if (wsreg_unregister(comp) != 0) { printf("wsreg_unregister succeeded "); } else { printf("unregister failed "); } } /* 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 "); } wsreg_query_free(query); } USAGE
Components should be unregistered before uninstallation. If the component cannot be unregistered, uninstallation should not be performed. A component cannot be unregistered if other registered components require it. A call to wsreg_get_dependent_components() can be used to determine if this situation exists. See wsreg_add_dependent_component(3WSREG). A successful unregistration of a component will result in all components required by the unregistered component being updated in the prod- uct install registry to remove the dependency. Also, child components will be updated so the unregistered component is no longer regis- tered 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 use this 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 attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |MT-Level |Unsafe | +-----------------------------+-----------------------------+ SEE ALSO
wsreg_add_dependent_component(3WSREG), wsreg_get(3WSREG), wsreg_initialize(3WSREG), wsreg_register(3WSREG), attributes(5) SunOS 5.10 22 Sep 2000 wsreg_unregister(3WSREG)
Man Page