Sun Microsystems, Inc.
spacerspacer
spacer   www.sun.com docs.sun.com | | |  
spacer
black dot
   
A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z
    
 
XFN Interface Library Functionsfn_ctx_equivalent_name(3XFN)


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 following 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 meaningful, 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 attributes:

ATTRIBUTE TYPEATTRIBUTE VALUE
MT-LevelMT-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)


SunOS 5.9Go To TopLast Changed 22 Nov 1996

 
      
      
Copyright 2002 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.