Closes a scope¶
ss_scope_close
is a function defined in ssscope.c.
Synopsis:
-
herr_t
ss_scope_close
(ss_scope_t *scope)¶
Description: Closes the specified scope without totally destroying the memory representation. Specifically, the top-scope’s Scope table is left intact as are the indirect map arrays in all scopes that have them. This is required for the following common scenario:
The application has two files called File-A
and File-B.
The application creates a new object (e.g., a
quantity) in File-A
without using the SS_ALLSAME flag and then creates another object (e.g., a unit) in
File-B
that refers to the object in File-A.
The application closes File-A
which closes all the
scopes in that file. It then attempts to close File-B,
which includes a synchronization and a flush.
However, when flushing, SSlib will need to convert a persistent object link from the Memory state to the
Closed state and convert its indirect object index to a direct object index. The only way this can be done is
by having the indirect mappings for the table that contained the object in File-A.
The scope is assumed to already be synchronized and flushed. In fact, it would not even be possible to flush
the scope from this function because doing so may require a call to H5Dextend
, which is file collective.
Return Value: Returns non-negative on success; negative on failure.
Parallel Notes: Collective across the scope’s communicator. This is the same set of tasks that originally opened the scope.
See Also:
- Scopes: Introduction for current chapter