Ignore:
Timestamp:
06/19/13 10:09:36 (11 years ago)
Author:
ymipsl
Message:

Add possibility to make inheritance of attributes and reference before closing the context definition.
New fortran fonction : xios_solve inheritance()
After this call, the value of attribute have the inherited value of their parent.

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/interface/c_attr/icfile_attr.cpp

    r432 r445  
    3030  { 
    3131     CTimer::get("XIOS").resume(); 
    32     if(!string_copy(file_hdl->description.getValue(),description , description_size)) 
     32    if(!string_copy(file_hdl->description.getInheritedValue(),description , description_size)) 
    3333      ERROR("void cxios_get_file_description(file_Ptr file_hdl, char * description, int description_size)", <<"Input string is to short"); 
    3434     CTimer::get("XIOS").suspend(); 
     
    3838  { 
    3939     CTimer::get("XIOS").resume(); 
    40     return !file_hdl->description.isEmpty(); 
     40    return file_hdl->description.hasInheritedValue(); 
    4141     CTimer::get("XIOS").suspend(); 
    4242  } 
     
    5454  void cxios_get_file_enabled(file_Ptr file_hdl, bool* enabled) 
    5555  { 
    56     *enabled = file_hdl->enabled.getValue(); 
     56    *enabled = file_hdl->enabled.getInheritedValue(); 
    5757  } 
    5858   
     
    6060  { 
    6161     CTimer::get("XIOS").resume(); 
    62     return !file_hdl->enabled.isEmpty(); 
     62    return file_hdl->enabled.hasInheritedValue(); 
    6363     CTimer::get("XIOS").suspend(); 
    6464  } 
     
    7676  void cxios_get_file_min_digits(file_Ptr file_hdl, int* min_digits) 
    7777  { 
    78     *min_digits = file_hdl->min_digits.getValue(); 
     78    *min_digits = file_hdl->min_digits.getInheritedValue(); 
    7979  } 
    8080   
     
    8282  { 
    8383     CTimer::get("XIOS").resume(); 
    84     return !file_hdl->min_digits.isEmpty(); 
     84    return file_hdl->min_digits.hasInheritedValue(); 
    8585     CTimer::get("XIOS").suspend(); 
    8686  } 
     
    101101  { 
    102102     CTimer::get("XIOS").resume(); 
    103     if(!string_copy(file_hdl->name.getValue(),name , name_size)) 
     103    if(!string_copy(file_hdl->name.getInheritedValue(),name , name_size)) 
    104104      ERROR("void cxios_get_file_name(file_Ptr file_hdl, char * name, int name_size)", <<"Input string is to short"); 
    105105     CTimer::get("XIOS").suspend(); 
     
    109109  { 
    110110     CTimer::get("XIOS").resume(); 
    111     return !file_hdl->name.isEmpty(); 
     111    return file_hdl->name.hasInheritedValue(); 
    112112     CTimer::get("XIOS").suspend(); 
    113113  } 
     
    128128  { 
    129129     CTimer::get("XIOS").resume(); 
    130     if(!string_copy(file_hdl->name_suffix.getValue(),name_suffix , name_suffix_size)) 
     130    if(!string_copy(file_hdl->name_suffix.getInheritedValue(),name_suffix , name_suffix_size)) 
    131131      ERROR("void cxios_get_file_name_suffix(file_Ptr file_hdl, char * name_suffix, int name_suffix_size)", <<"Input string is to short"); 
    132132     CTimer::get("XIOS").suspend(); 
     
    136136  { 
    137137     CTimer::get("XIOS").resume(); 
    138     return !file_hdl->name_suffix.isEmpty(); 
     138    return file_hdl->name_suffix.hasInheritedValue(); 
    139139     CTimer::get("XIOS").suspend(); 
    140140  } 
     
    155155  { 
    156156     CTimer::get("XIOS").resume(); 
    157     if(!string_copy(file_hdl->output_freq.getValue(),output_freq , output_freq_size)) 
     157    if(!string_copy(file_hdl->output_freq.getInheritedValue(),output_freq , output_freq_size)) 
    158158      ERROR("void cxios_get_file_output_freq(file_Ptr file_hdl, char * output_freq, int output_freq_size)", <<"Input string is to short"); 
    159159     CTimer::get("XIOS").suspend(); 
     
    163163  { 
    164164     CTimer::get("XIOS").resume(); 
    165     return !file_hdl->output_freq.isEmpty(); 
     165    return file_hdl->output_freq.hasInheritedValue(); 
    166166     CTimer::get("XIOS").suspend(); 
    167167  } 
     
    179179  void cxios_get_file_output_level(file_Ptr file_hdl, int* output_level) 
    180180  { 
    181     *output_level = file_hdl->output_level.getValue(); 
     181    *output_level = file_hdl->output_level.getInheritedValue(); 
    182182  } 
    183183   
     
    185185  { 
    186186     CTimer::get("XIOS").resume(); 
    187     return !file_hdl->output_level.isEmpty(); 
     187    return file_hdl->output_level.hasInheritedValue(); 
    188188     CTimer::get("XIOS").suspend(); 
    189189  } 
     
    204204  { 
    205205     CTimer::get("XIOS").resume(); 
    206     if(!string_copy(file_hdl->par_access.getValue(),par_access , par_access_size)) 
     206    if(!string_copy(file_hdl->par_access.getInheritedValue(),par_access , par_access_size)) 
    207207      ERROR("void cxios_get_file_par_access(file_Ptr file_hdl, char * par_access, int par_access_size)", <<"Input string is to short"); 
    208208     CTimer::get("XIOS").suspend(); 
     
    212212  { 
    213213     CTimer::get("XIOS").resume(); 
    214     return !file_hdl->par_access.isEmpty(); 
     214    return file_hdl->par_access.hasInheritedValue(); 
    215215     CTimer::get("XIOS").suspend(); 
    216216  } 
     
    231231  { 
    232232     CTimer::get("XIOS").resume(); 
    233     if(!string_copy(file_hdl->split_freq.getValue(),split_freq , split_freq_size)) 
     233    if(!string_copy(file_hdl->split_freq.getInheritedValue(),split_freq , split_freq_size)) 
    234234      ERROR("void cxios_get_file_split_freq(file_Ptr file_hdl, char * split_freq, int split_freq_size)", <<"Input string is to short"); 
    235235     CTimer::get("XIOS").suspend(); 
     
    239239  { 
    240240     CTimer::get("XIOS").resume(); 
    241     return !file_hdl->split_freq.isEmpty(); 
     241    return file_hdl->split_freq.hasInheritedValue(); 
    242242     CTimer::get("XIOS").suspend(); 
    243243  } 
     
    258258  { 
    259259     CTimer::get("XIOS").resume(); 
    260     if(!string_copy(file_hdl->split_freq_format.getValue(),split_freq_format , split_freq_format_size)) 
     260    if(!string_copy(file_hdl->split_freq_format.getInheritedValue(),split_freq_format , split_freq_format_size)) 
    261261      ERROR("void cxios_get_file_split_freq_format(file_Ptr file_hdl, char * split_freq_format, int split_freq_format_size)", <<"Input string is to short"); 
    262262     CTimer::get("XIOS").suspend(); 
     
    266266  { 
    267267     CTimer::get("XIOS").resume(); 
    268     return !file_hdl->split_freq_format.isEmpty(); 
     268    return file_hdl->split_freq_format.hasInheritedValue(); 
    269269     CTimer::get("XIOS").suspend(); 
    270270  } 
     
    285285  { 
    286286     CTimer::get("XIOS").resume(); 
    287     if(!string_copy(file_hdl->sync_freq.getValue(),sync_freq , sync_freq_size)) 
     287    if(!string_copy(file_hdl->sync_freq.getInheritedValue(),sync_freq , sync_freq_size)) 
    288288      ERROR("void cxios_get_file_sync_freq(file_Ptr file_hdl, char * sync_freq, int sync_freq_size)", <<"Input string is to short"); 
    289289     CTimer::get("XIOS").suspend(); 
     
    293293  { 
    294294     CTimer::get("XIOS").resume(); 
    295     return !file_hdl->sync_freq.isEmpty(); 
     295    return file_hdl->sync_freq.hasInheritedValue(); 
    296296     CTimer::get("XIOS").suspend(); 
    297297  } 
     
    312312  { 
    313313     CTimer::get("XIOS").resume(); 
    314     if(!string_copy(file_hdl->type.getStringValue(),type , type_size)) 
     314    if(!string_copy(file_hdl->type.getInheritedStringValue(),type , type_size)) 
    315315      ERROR("void cxios_get_file_type(file_Ptr file_hdl, char * type, int type_size)", <<"Input string is to short"); 
    316316     CTimer::get("XIOS").suspend(); 
     
    320320  { 
    321321     CTimer::get("XIOS").resume(); 
    322     return !file_hdl->type.isEmpty(); 
     322    return file_hdl->type.hasInheritedValue(); 
    323323     CTimer::get("XIOS").suspend(); 
    324324  } 
Note: See TracChangeset for help on using the changeset viewer.