BEA Logo BEA Tuxedo Release 7.1

  Corporate Info  |  News  |  Solutions  |  Products  |  Partners  |  Services  |  Events  |  Download  |  How To Buy

 

   Tuxedo Doc Home   |   Reference   |   Topic List   |   Previous   |   Next   |   Contents

   BEA Tuxedo FML Function Reference

Fboolev, Fboolev32, Fvboolev, Fvboolev32(3fml)

Name

Fboolev(), Fboolev32(), Fvboolev(), Fvboolev32() - evaluate buffer against tree

Synopsis

#include stdio.h> 
#include "fml.h"
int
Fboolev(FBFR *fbfr, char *tree)
int
Fvboolev(char *cstruct, char *tree, char *viewname)
#include "fml32.h"
int
Fboolev32(FBFR32 *fbfr, char *tree)
int
Fvboolev32(char *cstruct, char *tree, char *viewname)

Description

Fboolev() takes a pointer to a fielded buffer, fbfr, and a pointer to the evaluation tree returned from Fboolco(), tree, and returns true (1) if the fielded buffer matches the specified Boolean conditions and false (0) if it does not. This function does not change either the fielded buffer or evaluation tree. The evaluation tree is one previously compiled by Fboolco().

Fboolev32() is used with 32-bit FML.

Fvboolev() and Fvboolev32() provide the same functionallity for views. The viewname parameter indicates the view from which the field offsets are taken, and should be the same view specified for Fvboolco() or Fvboolco32().

These functions are not supported on Workstation platforms.

A thread in a multithreaded application may issue a call to any of the functions documented here-Fboolev(), Fboolev32(), Fvboolev(), or Fvboolev32()-while running in any context state, including TPINVALIDCONTEXT.

Return Values

Fboolev() returns 1 if the expression in the buffer matches the evaluation tree. It returns 0 if the expression fails to match the evaluation tree. This function returns -1 on error and sets Ferror to indicate the error condition.

Errors

Under the following conditions, Fboolev() fails and sets Ferror to:

[FALIGNERR]

"fielded buffer not aligned"
The fbfr buffer does not begin on the proper boundary.

[FNOTFLD]

"buffer not fielded"
The fbfr buffer is not a fielded buffer or has not been initialized by Finit().

[FMALLOC]

"malloc failed"
Allocation of space dynamically using malloc() failed.

[FEINVAL]

"invalid argument to function"
One of the arguments to the function invoked was invalid (for example, specifying a NULL tree parameter).

[FSYNTAX]

"bad syntax in Boolean expression"
A syntax error was found in a Boolean expression other than an unrecognized field name.

[FBADVIEW]

"cannot find or get view"
viewname was not found in the files specified by VIEWDIR or VIEWFILES.

[FVFOPEN]

"cannot find or open view file"
While trying to find viewname, the program failed to find one of the files specified by VIEWDIR or VIEWFILES.

[EUNIX]

"operating system error"
While trying to find viewname, the program failed to open one of the files specified by VIEWDIR or VIEWFILES for reading.

[FVFSYNTAX]

"bad viewfile"
While trying to find viewname, one of the files specified by VIEWDIR or VIEWFILES was corrupted or not a view file.

[FMALLOC]

"malloc failed"
While trying to find viewname, malloc() failed while allocating space to hold the view information.

Example

Using the evaluation tree compiled in the example for Fboolco():

#include stdio.h> 
#include "fml.h"
#include "fld.tbl.h"
FBFR *fbfr;
...
Fchg(fbfr,FIRSTNAME,0,"John",0);
Fchg(fbfr,SEX,0,"M",0);
if(Fboolev(fbfr,tree) > 0)
fprintf(stderr,"Buffer selected\\\\n");
else
fprintf(stderr,"Buffer not selected\\\\n");

would print Buffer selected.

See Also

Introduction to FML Functions, Fboolco, Fboolco32, Fvboolco, Fvboolco32(3fml), Fboolpr, Fboolpr32, Fvboolpr, Fvboolpr32(3fml)