diff options
author | pradeep <pradeep@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-10-07 09:25:44 +0000 |
---|---|---|
committer | pradeep <pradeep@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-10-07 09:25:44 +0000 |
commit | 9c4f1aa20db30d0e3676139e6496a1b12033240a (patch) | |
tree | 1050a8688f96968fdb4edd457b41797370ad3bc6 /TAO/orbsvcs/orbsvcs/Trader/Constraint_Interpreter.cpp | |
parent | 117fc92b3a58a4cec435344f6da4a1d663da0144 (diff) | |
download | ATCD-9c4f1aa20db30d0e3676139e6496a1b12033240a.tar.gz |
*** empty log message ***
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Trader/Constraint_Interpreter.cpp')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/Trader/Constraint_Interpreter.cpp | 103 |
1 files changed, 5 insertions, 98 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Trader/Constraint_Interpreter.cpp b/TAO/orbsvcs/orbsvcs/Trader/Constraint_Interpreter.cpp index 5fe2b4b033b..3cf68ace9fd 100644 --- a/TAO/orbsvcs/orbsvcs/Trader/Constraint_Interpreter.cpp +++ b/TAO/orbsvcs/orbsvcs/Trader/Constraint_Interpreter.cpp @@ -1,71 +1,10 @@ // $Id$ -#include "ace/OS.h" #include "Constraint_Interpreter.h" +#include "Trader_Constraint_Visitors.h" ACE_RCSID(Trader, Constraint_Interpreter, "$Id$") -ACE_SYNCH_MUTEX TAO_Interpreter::parserMutex__; - -TAO_Interpreter::TAO_Interpreter (void) - : root_ (0) -{ -} - -TAO_Interpreter::~TAO_Interpreter (void) -{ - delete root_; -} - -int -TAO_Interpreter::build_tree (const char* constraints) -{ - ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, - guard, - TAO_Interpreter::parserMutex__, - -1); - - TAO_Lex_String_Input::reset ((char*)constraints); - int return_value = 0; - - yyval.constraint_ = 0; - return_value = ::yyparse (); - - if (return_value == 0 && yyval.constraint_ != 0) - this->root_ = yyval.constraint_; - else - { - while (yylex () > 0) - continue; - this->root_ = 0; - } - - return return_value; -} - -int -TAO_Interpreter::is_empty_string (const char* str) -{ - int return_value = 0; - - if (str != 0) - { - int i = 0; - while (str[i] != '\0') - { - if (str[i] != ' ') - break; - - i++; - } - - if (str[i] == '\0') - return_value = 1; - } - - return return_value; -} - TAO_Constraint_Interpreter:: TAO_Constraint_Interpreter (const CosTradingRepos::ServiceTypeRepository::TypeStruct& ts, const char* constraints, @@ -77,7 +16,7 @@ TAO_Constraint_Interpreter (const CosTradingRepos::ServiceTypeRepository::TypeSt // @@ Throwing Exception from constructor is very nasty situation to // deal with. - TAO_Constraint_Validator type_checker (ts); + TAO_Trader_Constraint_Validator type_checker (ts); if (TAO_Interpreter::is_empty_string (constraints)) { @@ -127,7 +66,7 @@ TAO_Constraint_Interpreter::~TAO_Constraint_Interpreter (void) CORBA::Boolean TAO_Constraint_Interpreter::evaluate (CosTrading::Offer* offer) { - TAO_Constraint_Evaluator evaluator (offer); + TAO_Trader_Constraint_Evaluator evaluator (offer); return evaluator.evaluate_constraint (this->root_); } @@ -145,7 +84,7 @@ TAO_Preference_Interpreter (const CosTradingRepos::ServiceTypeRepository::TypeSt CORBA::NO_MEMORY)) : TAO_Interpreter () { - TAO_Constraint_Validator type_checker (ts); + TAO_Trader_Constraint_Validator type_checker (ts); if (TAO_Interpreter::is_empty_string (preference)) { @@ -198,7 +137,7 @@ TAO_Preference_Interpreter:: order_offer (CosTrading::Offer* offer, CosTrading::OfferId offer_id) { - TAO_Constraint_Evaluator evaluator (offer); + TAO_Trader_Constraint_Evaluator evaluator (offer); this->order_offer (evaluator, offer, offer_id); } @@ -306,38 +245,6 @@ TAO_Preference_Interpreter::num_offers (void) return this->offers_.size (); } -char* TAO_Lex_String_Input::string_ = 0; -char* TAO_Lex_String_Input::current_ = 0; -char* TAO_Lex_String_Input::end_ = 0; - -// Routine to have Lex read its input from the constraint string. - -int -TAO_Lex_String_Input::copy_into (char* buf, int max_size) -{ - int chars_left = TAO_Lex_String_Input::end_ - TAO_Lex_String_Input::current_; - int n = max_size > chars_left ? chars_left : max_size; - - if (n > 0) - { - ACE_OS:: memcpy (buf, - TAO_Lex_String_Input::current_, - n); - TAO_Lex_String_Input::current_ += n; - } - - return n; -} - -void -TAO_Lex_String_Input::reset (char* input_string) -{ - TAO_Lex_String_Input::string_ = input_string; - TAO_Lex_String_Input::current_ = input_string; - TAO_Lex_String_Input::end_ = input_string + - ACE_OS::strlen (TAO_Lex_String_Input::string_); -} - #if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) template class ACE_Node<TAO_Preference_Interpreter::Preference_Info>; template class ACE_Unbounded_Queue<TAO_Preference_Interpreter::Preference_Info>; |