Add one resource list to another
dip_Error dip_ResourcesMerge( resources, mergee )
Adds one resource list to another. This function is very useful when writing functions that will support a dip_Resources parameter. Typically you want to allocate a number of resources and only add these to the user-supplied dip_Resources when all these allocations have been successful. This is where ResourcesMerge comes in. Allocate a local dip_Resources structure and register all resources with it. When no errors occured the local dip_Resources structure can be merged with the user-supplied dip_Resources structure. If an error did occur, simply free all local resources by calling ResourcesFree. In addition it is the convention that functions supporting resource tracking also accept a zero indicating that no tracking should be performed. When resources in dip_ResourcesMerge is 0, the mergee tracking structure is freed, but the resources it contains are not. In this way you get support for the "resources = 0 means no tracking" convention for free.
Data type | Name | Description |
dip_Resources | resources | The dip_Resources structure with which the additional resources much be merged |
dip_Resources * | mergee | A pointer to the dip_Resources structure containing the additional resources to be merged. After the merge, mergee is set to 0. |
ResourcesNew, ResourcesFree, ResourceSubscribe, ResourceUnsubscribe