diff options
author | jtc <jtc@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2008-09-16 22:04:42 +0000 |
---|---|---|
committer | jtc <jtc@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2008-09-16 22:04:42 +0000 |
commit | be80a4c7f1c3e5a99973cf4f2c1e3f7093eb3dd2 (patch) | |
tree | b8452e7341a772127db1d9e2e1f80d33cede8a1e /ACE/ace/ETCL | |
parent | e0a2db465c08468728fa0cc1833ee040b9d22ee5 (diff) | |
download | ATCD-be80a4c7f1c3e5a99973cf4f2c1e3f7093eb3dd2.tar.gz |
ChangeLogTag: Tue Sep 16 21:58:59 UTC 2008 J.T. Conklin <jtc@acorntoolworks.com>
Diffstat (limited to 'ACE/ace/ETCL')
-rw-r--r-- | ACE/ace/ETCL/ETCL_Constraint.cpp | 96 | ||||
-rw-r--r-- | ACE/ace/ETCL/ETCL_Constraint.inl | 17 |
2 files changed, 23 insertions, 90 deletions
diff --git a/ACE/ace/ETCL/ETCL_Constraint.cpp b/ACE/ace/ETCL/ETCL_Constraint.cpp index 7c9bdc0c5f7..ecdcff9f9d3 100644 --- a/ACE/ace/ETCL/ETCL_Constraint.cpp +++ b/ACE/ace/ETCL/ETCL_Constraint.cpp @@ -31,7 +31,7 @@ ETCL_Constraint::accept (ETCL_Constraint_Visitor * /* visitor */) ETCL_Literal_Constraint::ETCL_Literal_Constraint ( const ETCL_Literal_Constraint & lit ) - : ETCL_Constraint () + : type_ (ACE_ETCL_UNKNOWN) { this->copy (lit); } @@ -212,38 +212,6 @@ ETCL_Literal_Constraint::operator== (const ETCL_Literal_Constraint & rhs) return return_value; } - -bool -ETCL_Literal_Constraint::operator!= (const ETCL_Literal_Constraint & rhs) -{ - bool return_value = false; - Literal_Type widest_type = this->widest_type (rhs); - - switch (widest_type) - { - case ACE_ETCL_STRING: - return_value = (ACE_OS::strcmp ((const char*) *this, (const char*) rhs) != 0); - break; - case ACE_ETCL_DOUBLE: - return_value = (ACE_CDR::Double) *this != (ACE_CDR::Double) rhs; - break; - case ACE_ETCL_INTEGER: - case ACE_ETCL_SIGNED: - return_value = (ACE_CDR::Long) *this != (ACE_CDR::Long) rhs; - break; - case ACE_ETCL_UNSIGNED: - return_value = (ACE_CDR::ULong) *this != (ACE_CDR::ULong) rhs; - break; - case ACE_ETCL_BOOLEAN: - return_value = (ACE_CDR::Boolean) *this != (ACE_CDR::Boolean) rhs; - break; - default: - break; - } - - return return_value; -} - bool ETCL_Literal_Constraint::operator< (const ETCL_Literal_Constraint & rhs) { @@ -276,34 +244,6 @@ ETCL_Literal_Constraint::operator< (const ETCL_Literal_Constraint & rhs) } bool -ETCL_Literal_Constraint::operator<= (const ETCL_Literal_Constraint & rhs) -{ - bool return_value = false; - Literal_Type widest_type = this->widest_type (rhs); - - switch (widest_type) - { - case ACE_ETCL_STRING: - return_value = (ACE_OS::strcmp ((const char*) *this, (const char*) rhs) <= 0); - break; - case ACE_ETCL_DOUBLE: - return_value = (ACE_CDR::Double) *this <= (ACE_CDR::Double) rhs; - break; - case ACE_ETCL_INTEGER: - case ACE_ETCL_SIGNED: - return_value = (ACE_CDR::Long) *this <= (ACE_CDR::Long) rhs; - break; - case ACE_ETCL_UNSIGNED: - return_value = (ACE_CDR::ULong) *this <= (ACE_CDR::ULong) rhs; - break; - default: - break; - } - - return return_value; -} - -bool ETCL_Literal_Constraint::operator> (const ETCL_Literal_Constraint & rhs) { bool return_value = false; @@ -331,35 +271,6 @@ ETCL_Literal_Constraint::operator> (const ETCL_Literal_Constraint & rhs) return return_value; } -bool -ETCL_Literal_Constraint::operator>= (const ETCL_Literal_Constraint & rhs) -{ - bool return_value = false; - Literal_Type widest_type = this->widest_type (rhs); - - switch (widest_type) - { - case ACE_ETCL_STRING: - return_value = - (ACE_OS::strcmp ((const char*) *this, (const char*) rhs) >= 0); - break; - case ACE_ETCL_DOUBLE: - return_value = (ACE_CDR::Double) *this >= (ACE_CDR::Double) rhs; - break; - case ACE_ETCL_INTEGER: - case ACE_ETCL_SIGNED: - return_value = (ACE_CDR::Long) *this >= (ACE_CDR::Long) rhs; - break; - case ACE_ETCL_UNSIGNED: - return_value = (ACE_CDR::ULong) *this >= (ACE_CDR::ULong) rhs; - break; - default: - break; - } - - return return_value; -} - ETCL_Literal_Constraint ETCL_Literal_Constraint::operator+ (const ETCL_Literal_Constraint & rhs) { @@ -513,6 +424,11 @@ ETCL_Literal_Constraint::widest_type (const ETCL_Literal_Constraint & rhs) void ETCL_Literal_Constraint::copy (const ETCL_Literal_Constraint &lit) { + if (this->type_ == ACE_ETCL_STRING) + { + ACE::strdelete (this->op_.str_); + } + this->type_ = lit.type_; switch (this->type_) diff --git a/ACE/ace/ETCL/ETCL_Constraint.inl b/ACE/ace/ETCL/ETCL_Constraint.inl index b63022252d2..e01cf43da40 100644 --- a/ACE/ace/ETCL/ETCL_Constraint.inl +++ b/ACE/ace/ETCL/ETCL_Constraint.inl @@ -372,3 +372,20 @@ ETCL_Preference::subexpr (void) const return this->subexpr_; } +ACE_INLINE bool +ETCL_Literal_Constraint::operator!= (const ETCL_Literal_Constraint & rhs) +{ + return !(*this == rhs); +} + +ACE_INLINE bool +ETCL_Literal_Constraint::operator<= (const ETCL_Literal_Constraint & rhs) +{ + return !(*this > rhs); +} + +ACE_INLINE bool +ETCL_Literal_Constraint::operator>= (const ETCL_Literal_Constraint & rhs) +{ + return !(*this < rhs); +} |