Ignore:
Timestamp:
07/18/17 11:50:10 (7 years ago)
Author:
mhnguyen
Message:

Correcting minor bug of reference key word

+) Comparison of two objects with *_ref keyword is checked correctly

Test
+) On Curie
+) Only simple case

Location:
XIOS/dev/XIOS_DEV_CMIP6/src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/XIOS_DEV_CMIP6/src/attribute_array.hpp

    r1158 r1219  
    4343            CArray<T_numtype, N_rank> getInheritedValue(void) const ; 
    4444            bool hasInheritedValue(void) const; 
    45              
    46             bool isEqual(const CAttributeArray& attr); 
     45                         
    4746            bool isEqual(const CAttribute& attr); 
    4847 
     
    6766 
    6867         private : 
     68          bool isEqual_(const CAttributeArray& attr); 
    6969          CArray<T_numtype, N_rank> inheritedValue ; 
    7070          StdString _toString(void) const; 
  • XIOS/dev/XIOS_DEV_CMIP6/src/attribute_array_impl.hpp

    r1158 r1219  
    104104 
    105105    template <typename T_numtype, int N_rank> 
    106     bool CAttributeArray<T_numtype,N_rank>::isEqual(const CAttributeArray& attr) 
     106    bool CAttributeArray<T_numtype,N_rank>::isEqual(const CAttribute& attr) 
    107107    { 
    108       return ((dynamic_cast<CArray<T_numtype,N_rank>& >(*this)) == (dynamic_cast<const CArray<T_numtype,N_rank>& >(attr)));       
     108      const CAttributeArray<T_numtype,N_rank>& tmp = dynamic_cast<const CAttributeArray<T_numtype,N_rank>& >(attr); 
     109      return this->isEqual_(tmp);       
    109110    } 
    110111 
    111112    template <typename T_numtype, int N_rank> 
    112     bool CAttributeArray<T_numtype,N_rank>::isEqual(const CAttribute& attr) 
     113    bool CAttributeArray<T_numtype,N_rank>::isEqual_(const CAttributeArray& attr) 
    113114    { 
    114       return ((*this) == (dynamic_cast<const CAttributeArray<T_numtype,N_rank>& >(attr)));       
     115      if ((!this->hasInheritedValue() && !attr.hasInheritedValue())) 
     116          return true; 
     117      if (this->hasInheritedValue() && attr.hasInheritedValue()) 
     118          return (this->getInheritedValue() == attr.getInheritedValue()); 
     119      else  
     120        return false;       
    115121    } 
    116122 
  • XIOS/dev/XIOS_DEV_CMIP6/src/attribute_enum.hpp

    r1158 r1219  
    4949            T_enum getInheritedValue(void)  const; 
    5050            string getInheritedStringValue(void) const; 
    51             bool hasInheritedValue(void) const;           
    52            
    53             bool isEqual(const CAttributeEnum& attr ); 
     51            bool hasInheritedValue(void) const;                     
     52             
    5453            bool isEqual(const CAttribute& attr ); 
    5554 
     
    7473            virtual void generateFortranInterfaceGetDeclaration_(ostream& oss,const string& className) ; 
    7574            virtual void generateFortranInterfaceGetBody_(ostream& oss,const string& className) ; 
    76             virtual void generateFortranInterfaceGetDeclaration(ostream& oss,const string& className) ; 
     75            virtual void generateFortranInterfaceGetDeclaration(ostream& oss,const string& className) ;       
    7776 
    7877         private : 
     78          bool isEqual_(const CAttributeEnum& attr ); 
    7979          StdString _toString(void) const; 
    8080          void _fromString(const StdString & str); 
  • XIOS/dev/XIOS_DEV_CMIP6/src/attribute_enum_impl.hpp

    r1158 r1219  
    114114  bool CAttributeEnum<T>::isEqual(const CAttribute& attr) 
    115115  { 
    116     return (this->isEqual(dynamic_cast<const CAttributeEnum<T>& >(attr))); 
    117   } 
    118  
    119   template <class T> 
    120   bool CAttributeEnum<T>::isEqual(const CAttributeEnum& attr) 
    121   { 
    122     return ((dynamic_cast<const CEnum<T>& >(*this)) == (dynamic_cast<const CEnum<T>& >(attr))); 
     116    const CAttributeEnum<T>& tmp = dynamic_cast<const CAttributeEnum<T>& >(attr); 
     117    return this->isEqual_(tmp); 
     118  } 
     119 
     120  template <class T> 
     121  bool CAttributeEnum<T>::isEqual_(const CAttributeEnum& attr) 
     122  { 
     123    if ((!this->hasInheritedValue() && !attr.hasInheritedValue())) 
     124        return true; 
     125    if (this->hasInheritedValue() && attr.hasInheritedValue()) 
     126        return (this->getInheritedValue() == attr.getInheritedValue()); 
     127    else  
     128      return false;     
    123129  } 
    124130 
  • XIOS/dev/XIOS_DEV_CMIP6/src/attribute_template.hpp

    r1158 r1219  
    5757            T getInheritedValue(void) const ; 
    5858            bool hasInheritedValue(void) const; 
    59  
    60             bool isEqual_(const CAttributeTemplate& attr ); 
     59             
    6160            bool isEqual(const CAttribute& attr ); 
    6261 
     
    9594//            CAttributeTemplate(void); // Not implemented. 
    9695         private : 
     96          bool isEqual_(const CAttributeTemplate& attr); 
    9797          StdString _toString(void) const; 
    9898          void _fromString(const StdString & str); 
Note: See TracChangeset for help on using the changeset viewer.