Ignore:
Timestamp:
12/05/16 17:47:54 (7 years ago)
Author:
oabramkina
Message:

First working version with compression by secondary servers.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_olga/src/declare_ref_func.hpp

    r962 r1009  
    5151    SuperClassAttribute::setAttributes(refer_ptr, apply);              \ 
    5252  }                                                                    \ 
     53  if (this->hasAttribute("name") && this->name.isEmpty())              \ 
     54    this->name.setValue(this->get##type##OutputName());                \ 
    5355}                                                                      \ 
    5456                                                                       \ 
     
    9597    const C##type* refer_ptr = this, *tmp_ptr;                         \ 
    9698    StdString nameRef = this->name_##_ref;                             \ 
    97     std::set<const C##type*> tmpRefObjects;                                  \ 
     99    std::set<const C##type*> tmpRefObjects;                            \ 
    98100    while (refer_ptr->hasAutoGeneratedId() &&                          \ 
    99101          (C##type::has(nameRef)))                                     \ 
     
    102104      tmp_ptr = refer_ptr;                                             \ 
    103105      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       {                                                                \ 
    108114        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       }                                                               \ 
    112118    }                                                                  \ 
    113119    return nameRef;                                                    \ 
Note: See TracChangeset for help on using the changeset viewer.