NAME fn_ctx_equivalent_name - construct an equivalent name in same context SYNOPSIS #include <xfn/xfn.h> FN_composite_name_t *fn_ctx_equivalent_name(FN_ctx_t *ctx, const FN_composite_name_t *name, const FN_string_t *leading_name, FN_status_t * status); DESCRIPTION Given the name of an object name relative to the context ctx, this operation returns an equivalent name for that object, relative to the same context ctx, that has leading_name as its initial atomic name. Two names are said to be equivalent if they have prefixes that resolve to the same context, and the parts of the names immediately follow- ing the prefixes are identical. The existence of a binding for leading_name in ctx does not guarantee that a name equivalent to name can be constructed. The failure may be because such equivalence is not meaning- ful, or due to the inability of the system to construct a name with the equivalence. For example, supplying _thishost as leading_name when name starts with _myself to fn_ctx_equivalent_name() in the Initial Context would not be meaningful; this results in the return of the error code FN_E_NO_EQUIVALENT_NAME. RETURN VALUES If an equivalent name cannot be constructed, the value 0 is returned and status is set appropriately. ERRORS fn_ctx_equivalent_name() sets status as described in FN_status_t(3XFN) and xfn_status_codes(3XFN). The following status code is especially relevant for this operation: FN_E_NO_EQUIVALENT_NAME No equivalent name can be constructed, either because there is no meaningful equivalence between name and leading_name, or the system does not support constructing the requested equivalent name, for implementation-specific reasons. EXAMPLES Example 1: Naming Files In the Initial Context supporting XFN enterprise policies, a user jsmith is able to name one of her files relative to this context in several ways. _myself/_fs/map.ps _user/jsmith/_fs/map.ps _orgunit/finance/_user/jsmith/_fs/map.ps The first of these may be appealing to the user jsmith in her day-to-day operations. This name is not, however, appropriate for her to use when referring the file in an electronic mail message sent to a colleague. The second of these names would be appropriate if the colleague were in the same organizational unit, and the third appropriate for anyone in the same enterprise. When the following sequence of instructions is executed by the user jsmith in the organizational unit finance, enterprise_wide_name would contain the composite name _orgunit/finance/_user/jsmith/_fs/map.ps: FN_string_t* namestr = fn_string_from_str((const unsigned char*)"_myself/_fs/map.ps"); FN_composite_name_t* name = fn_composite_name_from_string(namestr); FN_string_t* org_lead = fn_string_from_str((const unsigned char*)"_orgunit"); FN_status_t* status = fn_status_create(); FN_composite_name_t* enterprise_wide_name; FN_ctx_t* init_ctx = fn_ctx_handle_from_initial(status); /* check status of from_initial() */ enterprise_wide_name = fn_ctx_equivalent_name(init_ctx, name, org_lead, status); When the following sequence of instructions is executed by the user jsmith in the organizational unit finance, shortest_name would contain the composite name _myself/_fs/map.ps: FN_string_t* namestr = fn_string_from_str((const unsigned char*) "_orgunit/finance/_user_jsmith/_fs/map.ps"); FN_composite_name_t* name = fn_composite_name_from_string(namestr); FN_string_t* mylead = fn_string_from_str((const unsigned char*)"_myself"); FN_status_t* status = fn_status_create(); FN_composite_name_t* shortest_name; FN_ctx_t* init_ctx = fn_ctx_handle_from_initial(status); /* check status of from_initial() */ shortest_name = fn_ctx_equivalent_name(init_ctx, name, mylead, status); ATTRIBUTES See attributes (5) for descriptions of the following attri- butes: ____________________________________________________________ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | |_____________________________|_____________________________| | MT-Level | MT-Safe | |_____________________________|_____________________________| SEE ALSO FN_composite_name_t(3XFN), FN_ctx_t(3XFN), FN_status_t(3XFN), FN_string_t(3XFN), xfn_status_codes(3XFN), attributes(5)
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |