Changeset 1009 for XIOS/dev/dev_olga/src/declare_ref_func.hpp
- Timestamp:
- 12/05/16 17:47:54 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_olga/src/declare_ref_func.hpp
r962 r1009 51 51 SuperClassAttribute::setAttributes(refer_ptr, apply); \ 52 52 } \ 53 if (this->hasAttribute("name") && this->name.isEmpty()) \ 54 this->name.setValue(this->get##type##OutputName()); \ 53 55 } \ 54 56 \ … … 95 97 const C##type* refer_ptr = this, *tmp_ptr; \ 96 98 StdString nameRef = this->name_##_ref; \ 97 std::set<const C##type*> tmpRefObjects; 99 std::set<const C##type*> tmpRefObjects; \ 98 100 while (refer_ptr->hasAutoGeneratedId() && \ 99 101 (C##type::has(nameRef))) \ … … 102 104 tmp_ptr = refer_ptr; \ 103 105 refer_ptr = tmp_ptr->getDirect##type##Reference(); \ 104 if (refer_ptr->hasDirect##type##Reference()) \ 105 nameRef = refer_ptr->name_##_ref; \ 106 if (tmpRefObjects.end() != tmpRefObjects.find(refer_ptr)) \ 107 { \ 106 if (refer_ptr->hasAutoGeneratedId() && \ 107 refer_ptr->hasDirect##type##Reference()) \ 108 nameRef = refer_ptr->name_##_ref; \ 109 else { \ 110 nameRef = refer_ptr->getId(); break; \ 111 } \ 112 if (tmpRefObjects.end() != tmpRefObjects.find(refer_ptr)) \ 113 { \ 108 114 ERROR("const StdString& C" #type "::get" #type "OutputName(void) const ", \ 109 << "Circular dependency stopped for " #name_ " object " \110 << "with id = \"" << refer_ptr->getId() << "\"."); \111 }\115 << "Circular dependency stopped for " #name_ " object " \ 116 << "with id = \"" << refer_ptr->getId() << "\"."); \ 117 } \ 112 118 } \ 113 119 return nameRef; \
Note: See TracChangeset
for help on using the changeset viewer.