TAO_CosTrader  2.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions
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:
Inheritance graph
[legend]
Collaboration diagram for TAO_Constraint_Interpreter:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 TAO_Constraint_Interpreter (const CosTradingRepos::ServiceTypeRepository::TypeStruct &ts, const char *constraints)
 TAO_Constraint_Interpreter (TAO_Constraint_Validator &validator, const char *constraints)
 ~TAO_Constraint_Interpreter (void)
 Destructor.
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

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.

Destructor.


Member Function Documentation


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