Changeset 770
- Timestamp:
- 10/30/15 16:33:48 (8 years ago)
- Location:
- XIOS/trunk/src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/declare_ref_func.hpp
r768 r770 12 12 // Declarations 13 13 14 #define DECLARE_REF_FUNC(type, name )\14 #define DECLARE_REF_FUNC(type, name_) \ 15 15 public: \ 16 16 bool hasDirect##type##Reference(void) const; \ … … 21 21 void solveRefInheritance(bool apply = true); \ 22 22 void solveBaseReference(void); \ 23 const StdString& get##type##OutputName(void) const; \ 23 24 \ 24 25 private: \ … … 27 28 // Definitions 28 29 29 #define DEFINE_REF_FUNC(type, name )\30 #define DEFINE_REF_FUNC(type, name_) \ 30 31 void C##type::solveRefInheritance(bool apply) \ 31 32 { \ … … 42 43 { \ 43 44 ERROR("void C" #type "::solveRefInheritance(bool apply)", \ 44 << "Circular dependency stopped for " #name " object "\45 << "Circular dependency stopped for " #name_ " object " \ 45 46 << "with id = \"" << refer_ptr->getId() << "\"."); \ 46 47 } \ … … 52 53 void C##type::removeRefInheritance() \ 53 54 { \ 54 if (!this->name ##_ref.isEmpty())\55 this->name ##_ref.reset();\55 if (!this->name_##_ref.isEmpty()) \ 56 this->name_##_ref.reset(); \ 56 57 } \ 57 58 \ … … 70 71 { \ 71 72 ERROR("void C" #type "::solveBaseReference(void)", \ 72 << "Circular dependency stopped for " #name " object "\73 << "Circular dependency stopped for " #name_ " object " \ 73 74 << "with id = \"" << baseRefObject->getId() << "\"."); \ 74 75 } \ … … 78 79 C##type* C##type::getDirect##type##Reference(void) const \ 79 80 { \ 80 if (this->name ##_ref.isEmpty())\81 if (this->name_##_ref.isEmpty()) \ 81 82 return this->getBase##type##Reference(); \ 82 83 \ 83 if (!C##type::has(this->name ##_ref))\84 if (!C##type::has(this->name_##_ref)) \ 84 85 ERROR("C" #type "* C" #type "::getDirect" #type "Reference(void)", \ 85 << this->name ##_ref\86 << " refers to an unknown " #name " id.");\86 << this->name_##_ref \ 87 << " refers to an unknown " #name_ " id."); \ 87 88 \ 88 return C##type::get(this->name ##_ref);\89 return C##type::get(this->name_##_ref); \ 89 90 } \ 90 91 \ … … 98 99 return this->getBase##type##Reference()->getId(); \ 99 100 } \ 100 \101 101 bool C##type::hasDirect##type##Reference(void) const \ 102 102 { \ 103 return !this->name##_ref.isEmpty(); \ 103 return !this->name_##_ref.isEmpty(); \ 104 } \ 105 \ 106 const StdString& C##type::get##type##OutputName(void) const \ 107 { \ 108 if (!this->name.isEmpty()) \ 109 return this->name; \ 110 else if (hasAutoGeneratedId() && hasDirect##type##Reference()) \ 111 return this->name_##_ref; \ 112 else \ 113 return getId(); \ 104 114 } \ 105 115 -
XIOS/trunk/src/io/nc4_data_input.cpp
r765 r770 21 21 StdSize CNc4DataInput::getFieldNbRecords_(CField* field) 22 22 { 23 StdString fieldId = !field->name.isEmpty() ? field->name.getValue() : field->getBaseFieldReference()->getId();23 StdString fieldId = field->getFieldOutputName(); 24 24 25 25 if (SuperClassWriter::isTemporal(fieldId)) … … 41 41 if (SuperClass::type==MULTI_FILE || !isCollective) return; 42 42 43 StdString fieldId = !field->name.isEmpty() ? field->name.getValue() : field->getBaseFieldReference()->getId();43 StdString fieldId = field->getFieldOutputName(); 44 44 45 45 CArray<double,1> fieldData(grid->getWrittenDataSize()); -
XIOS/trunk/src/io/nc4_data_output.cpp
r757 r770 1058 1058 : latid; 1059 1059 */ 1060 StdString fieldid = (!field->name.isEmpty()) 1061 ? field->name.getValue() : field->getBaseFieldReference()->getId(); 1060 StdString fieldid = field->getFieldOutputName(); 1062 1061 1063 1062 // unsigned int ssize = domain->zoom_ni_loc.getValue() * domain->zoom_nj_loc.getValue(); … … 1384 1383 if (SuperClass::type == MULTI_FILE || !isCollective) return; 1385 1384 1386 StdString fieldid = !field->name.isEmpty() 1387 ? field->name.getValue() 1388 : field->getBaseFieldReference()->getId(); 1385 StdString fieldid = field->getFieldOutputName(); 1389 1386 1390 1387 StdOStringStream oss; -
XIOS/trunk/src/node/field.cpp
r767 r770 760 760 { 761 761 ERROR("CField::solveGridReference(void)", 762 << "A grid must be defined for field '" << (!name.isEmpty() ? name.getValue() : getId()) << "' .");762 << "A grid must be defined for field '" << getFieldOutputName() << "' ."); 763 763 } 764 764 else if (!grid_ref.isEmpty() && (!domain_ref.isEmpty() || !axis_ref.isEmpty())) 765 765 { 766 766 ERROR("CField::solveGridReference(void)", 767 << "Field '" << (!name.isEmpty() ? name.getValue() : getId()) << "' has both a grid and a domain/axis." << std::endl767 << "Field '" << getFieldOutputName() << "' has both a grid and a domain/axis." << std::endl 768 768 << "Please define either 'grid_ref' or 'domain_ref'/'axis_ref'."); 769 769 } -
XIOS/trunk/src/node/file.cpp
r757 r770 956 956 void CFile::sendEnabledFields() 957 957 { 958 int size = this->enabledFields.size(); 959 CField* fieldPtr(0); 960 for (int i = 0; i < size; ++i) 958 size_t size = this->enabledFields.size(); 959 for (size_t i = 0; i < size; ++i) 961 960 { 962 fieldPtr = this->enabledFields[i]; 963 if (fieldPtr->name.isEmpty()) fieldPtr->name.setValue(fieldPtr->getBaseFieldReference()->getId()); 964 this->sendAddField(fieldPtr->getId()); 965 fieldPtr->sendAllAttributesToServer(); 966 fieldPtr->sendAddAllVariables(); 961 CField* field = this->enabledFields[i]; 962 this->sendAddField(field->getId()); 963 field->sendAllAttributesToServer(); 964 field->sendAddAllVariables(); 967 965 } 968 966 }
Note: See TracChangeset
for help on using the changeset viewer.