SEDRIS Reference Manual
APPENDIX A - Transmittal Access Level 0 API
Types
SE_Search_Rule
/*
 * STRUCT: SE_Search_Rule
 *
 *   Used to specify a single rule in a set of rules, which can then
 *   be used to create a search filter. A search filter uses its
 *   associated set of rules to filter objects, so that only objects
 *   that pass the rules will be returned to the user (see SE_Iterator,
 *   SE_Search_Filter for more details.)
 *
 *   A single search rule by itself is useless. A set of search rules
 *   is specified using an array of type SE_Search_Rule, filled in
 *   with a well-formed postfix notation expression, ending with an
 *   SE_Search_Rule entry with a rule_type value of SE_SEARCHRULETYP_END. The
 *   sequence of SE_Search_Rule forms an RPN logic evaluation stack.
 *
 *   Macros are provided (which see) that allow a somewhat more
 *   readable pre-fix notation to be used when initializing
 *   arrays of SE_Search_Rule in variable declarations. A static
 *   search (a search whose conditions are known at compile time) can
 *   easily be specified by taking advantage of the search macros (see
 *   the examples, given in the comments preceding the search macros).
 *
 *   A dynamically created search, on the other hand, requires the user to
 *   create a rules array and fill in the array with a well-formed postfix
 *   notation expression, ending with an SE_Search_Rule entry with a
 *   rule_type value of SE_SEARCHRULETYP_END.
 */
typedef struct
{

SE_Search_Rule_Type rule_type;
/*
* If the following fields were in a union, then it would be impossible to
* use aggregate initializers (and then the #defined Search Macros could
* not work). So, in order to allow for the Search Macros, these fields
* are presented in a "plain struct" instead of a union, even though for
* any given rule_type, only a certain sub-set of the fields contain
* applicable values.
*/
SE_DRM_Class object_drm_class;
SE_DRM_Class component_object_drm_class;
SE_Short_Integer_Unsigned field_offset;
SE_Search_Value_Type value_type;
SE_Short_Integer_Unsigned value_array_length;
void *value_ptr;
void *second_value_ptr;
SE_Predicate user_function;
SE_Short_Integer_Unsigned max_search_depth;
} SE_Search_Rule;



Prev: SE_Search_Filter. Next: SE_Search_Rule_Type.


Return to: Top of this Page, Type Index