XPRMfindident
Purpose
Synopsis
int XPRMfindident(XPRMmodel model, const char *name, XPRMalltypes *value);
Arguments
|
model
|
Reference to a model
|
|
name
|
Identifier
|
|
value
|
Pointer to an area where the dictionary entry is returned
|
Return value
Aggregated type information of the returned dictionary entry, or 0 if the identifier is not registered.
Further information
1. This function returns the dictionary entry of a given identifier for a given model together with its type. The returned type information is bit encoded and associates a
type code and a
structure
that can be extracted using the macros
XPRM_TYP(t) and
XPRM_STR(t). The possible structures are:
Depending on the structure, the possible type codes are:
Any other value designates an external type (type provided by a module or defined in the model). Moreover, if the structure is XPRM_STR_UTYP, the identifier is the name of a user type and the value (an integer) corresponds to the expanded form of this type (see
XPRMgettypeprop). Otherwise, the function
XPRMgettypeprop can be used to get the name and the properties of this type.
The union XPRMalltypes groups all possible types and the result of a call to XPRMfindident is decoded as follows depending on the structure:
Memory blocks are generated by the
mem IO driver when used with a label. Blocks created this way can be found using the label: the name is linked to the following structure describing the block:
|
XPRM_STR_CONST
|
|
|
XPRM_STR_REF
|
|
|
XPRM_STR_LIST
|
|
|
XPRM_STR_SET
|
|
|
XPRM_STR_ARR
|
|
|
XPRM_STR_PROC
|
|
|
XPRM_STR_MEM
|
|
|
XPRM_STR_UTYP
|
|
XPRM_TYP_NOT
|
|
|
XPRM_TYP_INT
|
|
|
XPRM_TYP_REAL
|
|
|
XPRM_TYP_STRING
|
|
|
XPRM_TYP_BOOL
|
|
|
XPRM_TYP_MPVAR
|
|
|
XPRM_TYP_LINCTR
|
The union XPRMalltypes groups all possible types and the result of a call to XPRMfindident is decoded as follows depending on the structure:
|
value.integer
|
for constant, reference or user type
|
|
value.real
|
for constant or reference
|
|
value.string
|
for constant or reference
|
|
value.boolean
|
for constant or reference
|
|
value.mpvar
|
for reference
|
|
value.linctr
|
for reference
|
|
value.list
|
for list (to be used as input for list functions)
|
|
value.set
|
for set (to be used as input for set functions)
|
|
value.array
|
for array (to be used as input for array functions)
|
|
value.ref
|
for a reference to an external type (available operations depend on the actual type)
|
|
value.proc
|
for procedure and function
|
|
value.memblk
|
for memory block
|
typedef struct
{
void *ref; /* Base address of the block */
size_t size; /* Size of the block */
} XPRMmemblk; Note that memory blocks allocated by Mosel are managed by the memory manager of the IO driver and must not be explicitly released.
2. When the model is compiled with debug information (flags
"-g" or
"-G") both public and private symbols may be returned by this function. The macro XPRM_IS_PUBLIC(t) applied to the encoded type makes it possible to identify public entities.
Related topics
© 2001-2026 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation ("FICO"). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.
