diff options
author | nobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-10-15 04:23:40 +0000 |
---|---|---|
committer | nobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-10-15 04:23:40 +0000 |
commit | b608d1066a61c3793c879266c93ab0a97b063f4c (patch) | |
tree | 330242725b8b5a464aa612d38ebc38821d20a08d /TAO/orbsvcs/orbsvcs/Trader/Constraint_Nodes.h | |
parent | 43d57c766dfd3d460d9d20264482dfe3a5b1279b (diff) | |
download | ATCD-ACE-4_5_55.tar.gz |
This commit was manufactured by cvs2svn to create tag 'ACE-4_5_55'.ACE-4_5_55
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Trader/Constraint_Nodes.h')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/Trader/Constraint_Nodes.h | 323 |
1 files changed, 0 insertions, 323 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Trader/Constraint_Nodes.h b/TAO/orbsvcs/orbsvcs/Trader/Constraint_Nodes.h deleted file mode 100644 index f3bcc2b64c0..00000000000 --- a/TAO/orbsvcs/orbsvcs/Trader/Constraint_Nodes.h +++ /dev/null @@ -1,323 +0,0 @@ -/* -*- C++ -*- */ - -// ===================================================================== -// $Id$ -// -// = LIBRARY -// orbsvcs -// -// = FILENAME -// Constraint_Nodes.h -// -// = AUTHOR -// Seth Widoff <sbw1@cs.wustl.edu> -// -// ===================================================================== - -#ifndef TAO_CONSTRAINT_NODES_H -#define TAO_CONSTRAINT_NODES_H - -#include "Constraint_Tokens.h" -#include "orbsvcs/CosTradingC.h" - -#if defined(_MSC_VER) -#pragma warning (disable:4250) -#endif /* _MSC_VER */ - -class TAO_Constraint_Visitor; -typedef unsigned short TAO_Expression_Type; - -class TAO_Constraint -// -// = TITLE -// TAO_Constraint is the base class of all nodes on the -// constraint expression tree. -// -// = DESCRIPTION -// An TAO_Constraint knows what type of operation or entity -// it represents, and which method on TAO_Constraint_Visitor -// correlates to its type. When the accept method is invoked, a -// subclass dispatches the method on an TAO_Constraint_Visitor -// correlating to its type. -{ -public: - - virtual int accept (TAO_Constraint_Visitor* visitor) = 0; - // Implementing the pattern of double dispatching, each subclass of - // TAO_Constraint will call back on an InterpreterVisitor the - // method to handle a node of its ExpressionType. - - virtual TAO_Expression_Type expr_type (void) const = 0; - // Return the expression type represented by this node. - - virtual ~TAO_Constraint (void) {} -}; - -class TAO_Noop_Constraint : public TAO_Constraint -// = TITLE -// A node that represents an operation with no operands. -{ -public: - - TAO_Noop_Constraint (TAO_Expression_Type type) - : type_ (type) {} - - virtual int accept (TAO_Constraint_Visitor* visitor); - - virtual TAO_Expression_Type expr_type (void) const - { return this->type_; } - -private: - - TAO_Expression_Type type_; -}; - -class TAO_Binary_Constraint : public TAO_Constraint -// -// = TITLE -// TAO_Binary_Constraint represents an operation with left -// and right operands. -{ -public: - - TAO_Binary_Constraint (TAO_Expression_Type op_type, - TAO_Constraint* left, - TAO_Constraint* right); - - virtual int accept (TAO_Constraint_Visitor* visitor); - - virtual ~TAO_Binary_Constraint (void); - - virtual TAO_Expression_Type expr_type (void) const - { return this->op_; } - - TAO_Constraint* left_operand (void) const; - // Return the left operand of the binary expression - - TAO_Constraint* right_operand (void) const; - // Return the right operand of the binary expression - - // Allow double dispatching without creating an inundation of - // classes by using a dispatch table of static method pointers to - // invoke the correct visitor method as efficiently as a virtual - // method invocation. - static int visit_or (TAO_Constraint_Visitor*, TAO_Binary_Constraint*); - static int visit_and (TAO_Constraint_Visitor* , TAO_Binary_Constraint*); - static int visit_less_than (TAO_Constraint_Visitor* , TAO_Binary_Constraint*); - static int visit_less_than_equal (TAO_Constraint_Visitor* , TAO_Binary_Constraint*); - static int visit_greater_than (TAO_Constraint_Visitor* , TAO_Binary_Constraint*); - static int visit_greater_than_equal (TAO_Constraint_Visitor* , TAO_Binary_Constraint*); - static int visit_equal (TAO_Constraint_Visitor* , TAO_Binary_Constraint*); - static int visit_not_equal (TAO_Constraint_Visitor* , TAO_Binary_Constraint*); - static int visit_add (TAO_Constraint_Visitor* , TAO_Binary_Constraint*); - static int visit_sub (TAO_Constraint_Visitor* , TAO_Binary_Constraint*); - static int visit_mult (TAO_Constraint_Visitor* , TAO_Binary_Constraint*); - static int visit_div (TAO_Constraint_Visitor* , TAO_Binary_Constraint*); - static int visit_twiddle (TAO_Constraint_Visitor* , TAO_Binary_Constraint*); - static int visit_in (TAO_Constraint_Visitor* , TAO_Binary_Constraint*); - -private: - - TAO_Binary_Constraint (const TAO_Binary_Constraint&); - TAO_Binary_Constraint& operator= (const TAO_Binary_Constraint&); - - TAO_Expression_Type op_; - // The operator type - - TAO_Constraint* left_; - TAO_Constraint* right_; - // The operands of the expression -}; - -class TAO_Unary_Constraint : public TAO_Constraint -// -// = TITLE -// TAO_Unary_Constraint represents an operation with only -// one operand. -{ -public: - - TAO_Unary_Constraint (TAO_Expression_Type op_type, - TAO_Constraint* operand); - - virtual ~TAO_Unary_Constraint (void); - - virtual int accept (TAO_Constraint_Visitor* visitor); - - virtual TAO_Expression_Type expr_type (void) const - { return this->op_; } - - TAO_Constraint* operand (void); - -private: - - TAO_Unary_Constraint (const TAO_Unary_Constraint&); - TAO_Unary_Constraint& operator= (const TAO_Unary_Constraint&); - - TAO_Expression_Type op_; - // The operator type - - TAO_Constraint* operand_; - // The operand of the expression -}; - -class TAO_Property_Constraint : public TAO_Constraint -// -// = TITLE -// TAO_Property_Constraint represents a property whose -// value is determined by the offer being evaluated. -{ -public: - - TAO_Property_Constraint (const char* name); - - virtual ~TAO_Property_Constraint (void); - - virtual int accept (TAO_Constraint_Visitor* visitor); - - virtual TAO_Expression_Type expr_type (void) const - { return TAO_IDENT; } - - const char* name (void) const; - // Returns the name of the property. - -private: - - TAO_Property_Constraint (const TAO_Property_Constraint&); - TAO_Property_Constraint& operator= (const TAO_Property_Constraint&); - - char* name_; - // The name of the property. -}; - -class TAO_Literal_Constraint : public TAO_Constraint -// -// = TITLE -// TAO_Literal_Constraint represents a literal occuring in -// the constraint expression tree. -{ - public: - - TAO_Literal_Constraint (void) - : type_ (TAO_UNKNOWN) {} - - // = Constructors for each of the various types of literals. - - TAO_Literal_Constraint (CORBA::Any* any); - TAO_Literal_Constraint (CORBA::ULong uinteger); - TAO_Literal_Constraint (CORBA::Long integer); - TAO_Literal_Constraint (CORBA::Boolean boolean); - TAO_Literal_Constraint (CORBA::Double doub); - TAO_Literal_Constraint (const char* str); - - TAO_Literal_Constraint (const TAO_Literal_Constraint& lit); - // Copy constructor - - ~TAO_Literal_Constraint(void); - // Destructor. - - virtual int accept (TAO_Constraint_Visitor* visitor); - // Visitor accept methods. - - virtual TAO_Expression_Type expr_type (void) const - { return type_; } - - void operator= (const TAO_Literal_Constraint& co); - // Assignment operator. - - // Conversion routines. - operator CORBA::Boolean (void) const; - operator CORBA::ULong (void) const; - operator CORBA::Long (void) const; - operator CORBA::Double (void) const; - operator const char* (void) const; - operator const CORBA::Any* (void) const; - - // Return the type represented by this MysteryOperand. - - // = Comparison operators. - - friend int - operator< (const TAO_Literal_Constraint& left, - const TAO_Literal_Constraint& right); - - friend int - operator<= (const TAO_Literal_Constraint& left, - const TAO_Literal_Constraint& right); - - friend int - operator> (const TAO_Literal_Constraint& left, - const TAO_Literal_Constraint& right); - - friend int - operator>= (const TAO_Literal_Constraint& left, - const TAO_Literal_Constraint& right); - - friend int - operator== (const TAO_Literal_Constraint& left, - const TAO_Literal_Constraint& right); - - friend int - operator!= (const TAO_Literal_Constraint& left, - const TAO_Literal_Constraint& right); - - friend int - operator== (double left, - const TAO_Literal_Constraint& right); - - friend int - operator== (const TAO_String_Manager& left, - const TAO_Literal_Constraint& right); - - // = Arithmetic operators. - - friend TAO_Literal_Constraint - operator+ (const TAO_Literal_Constraint& left, - const TAO_Literal_Constraint& right); - - friend TAO_Literal_Constraint - operator- (const TAO_Literal_Constraint& left, - const TAO_Literal_Constraint& right); - - friend TAO_Literal_Constraint - operator* (const TAO_Literal_Constraint& left, - const TAO_Literal_Constraint& right); - - friend TAO_Literal_Constraint - operator/ (const TAO_Literal_Constraint& left, - const TAO_Literal_Constraint& right); - - friend TAO_Literal_Constraint - operator- (const TAO_Literal_Constraint& operand); - - static TAO_Expression_Type - widest_type (const TAO_Literal_Constraint& left, - const TAO_Literal_Constraint& right); - // Ensure both operands are of the same simple numeric type. - - static TAO_Expression_Type - comparable_type (CORBA::TypeCode_ptr type); - // Determine the comparable Expression Type from the CORBA type - - private: - - void copy (const TAO_Literal_Constraint& co); - // Private copy method. - - union - { - char* str_; - CORBA::Any_ptr any_; - CORBA::ULong uinteger_; - CORBA::Long integer_; - CORBA::Boolean bool_; - CORBA::Double double_; - } op_; - // Union of the possible literal types. - - TAO_Expression_Type type_; - // The actual types of the TAO_Literal_Constraint. - -}; - -#endif /* TAO_CONSTRAINT_NODES_H */ |