Main Page Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members

# TAO_Constraint_Interpreter Class Reference

TAO_Constraint_Interpreter will, given a constraint string whose syntax and semantics comply with the trader specification for the constraint language, determine if a CosTrading::Offer meets the constraints. More...

`#include <Constraint_Interpreter.h>`

Inheritance diagram for TAO_Constraint_Interpreter:

[legend]
Collaboration diagram for TAO_Constraint_Interpreter:

[legend]
List of all members.

## Public Methods
| TAO_Constraint_Interpreter (const CosTradingRepos::ServiceTypeRepository::TypeStruct &ts, const char *constraints ACE_ENV_ARG_DECL) throw (CosTrading::IllegalConstraint, CORBA::NO_MEMORY)
| TAO_Constraint_Interpreter (TAO_Constraint_Validator &validator, const char *constraints ACE_ENV_ARG_DECL) throw (CosTrading::IllegalConstraint, CORBA::NO_MEMORY)
| This constructor builds an expression tree representing the constraint specified in <constraints>, and throws an Illegal Constraint exception if the constraint given has syntax errors or semantic errors, such as mismatched types. More...
| ~TAO_Constraint_Interpreter (void)
| Destructor. More...
CORBA::Boolean | evaluate (CosTrading::Offer *offer)
CORBA::Boolean | evaluate (TAO_Constraint_Evaluator &evaluator)

## Detailed Description

TAO_Constraint_Interpreter will, given a constraint string whose syntax and semantics comply with the trader specification for the constraint language, determine if a CosTrading::Offer meets the constraints.

TAO_Constraint_Interpreter will first build an expression tree representing the constraint expression using Lex and Yacc. Then, using a TAO_Constraint_Validator, it will validate the semantic correctness of the tree. When the evaluate method is invoked with an Offer, the TAO_Constraint_Interpreter will construct an EvaluationVisitor, which will evaluate the tree and decide whether the offer meets the constraints.

## Constructor & Destructor Documentation

TAO_Constraint_Interpreter::TAO_Constraint_Interpreter | ( | const CosTradingRepos::ServiceTypeRepository::TypeStruct & | ts,
|  | const char *constraints | ACE_ENV_ARG_DECL
| ) | throw (CosTrading::IllegalConstraint, CORBA::NO_MEMORY)

TAO_Constraint_Interpreter::TAO_Constraint_Interpreter | ( | TAO_Constraint_Validator & | validator,
|  | const char *constraints | ACE_ENV_ARG_DECL
| ) | throw (CosTrading::IllegalConstraint, CORBA::NO_MEMORY)

| This constructor builds an expression tree representing the constraint specified in <constraints>, and throws an Illegal Constraint exception if the constraint given has syntax errors or semantic errors, such as mismatched types.

TAO_Constraint_Interpreter::~TAO_Constraint_Interpreter | ( | void |  | ) |

| Destructor.

## Member Function Documentation

CORBA::Boolean TAO_Constraint_Interpreter::evaluate | ( | TAO_Constraint_Evaluator & | evaluator | ) |

CORBA::Boolean TAO_Constraint_Interpreter::evaluate | ( | CosTrading::Offer * | offer | ) |

The documentation for this class was generated from the following files:

- Constraint_Interpreter.h
- Constraint_Interpreter.cpp