Find topological relations

saf_find_topo_relations is a function defined in rel.c.

Synopsis:

int saf_find_topo_relations(SAF_ParMode pmode, SAF_Db *db, SAF_Set *set, SAF_Set *topo_ancestor, int *num, SAF_Rel **found)

Formal Arguments:

  • pmode: The parallel mode.
  • db: The database in which to search for topology relations.
  • set: The set whose topology is sought.
  • topo_ancestor: [OUT] In many cases, the topology for a given set is known only on some ancestor of the set. This return value indicates that ancestor. If SAF__EQUIV for set and topo_ancestor is true, then the topology relations found by this call are indeed those defined on the specified set. Otherwise, they are defined on the topo_ancestor.
  • num: For this and the succeeding argument, (see *Returned Handles*).
  • found: For this and the preceding argument, (see *Returned Handles*).

Description: This function will find the topological relations governing a given set. Note that if the given set is one that is the subset of where the topological relations are actually declared, this call will return that set and the topological relation(s) defined on that set.

Preconditions:

  • pmode must be valid. (low-cost)
  • set must be a valid handle. (low-cost)
  • topo_ancestor must be non-null. (low-cost)
  • num and found must be compatible for return value allocation. (low-cost)

Return Value: The constant SAF__SUCCESS is returned when this function is successful. Otherwise this function either returns an error number or throws an exception, depending on the value of the library’s error handling property.

Issues: What if there are multiple topological relations governing a given set which are declared on different sets? The topo_ancestor argument needs to be of length *Pnum_rels.

The topo_ancestor argument is not actually referenced or returned by this function.

See Also: