Ignore:
Timestamp:
06/18/18 20:32:55 (6 years ago)
Author:
yushan
Message:

branch_openmp merged with trunk r1544

File:
1 edited

Legend:

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

    r1205 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
     
    3636     CTimer::get("XIOS").resume(); 
    3737     bool isDefined = file_hdl->append.hasInheritedValue(); 
     38     CTimer::get("XIOS").suspend(); 
     39     return isDefined; 
     40  } 
     41 
     42 
     43  void cxios_set_file_comment(file_Ptr file_hdl, const char * comment, int comment_size) 
     44  { 
     45    std::string comment_str; 
     46    if (!cstr2string(comment, comment_size, comment_str)) return; 
     47    CTimer::get("XIOS").resume(); 
     48    file_hdl->comment.setValue(comment_str); 
     49    CTimer::get("XIOS").suspend(); 
     50  } 
     51 
     52  void cxios_get_file_comment(file_Ptr file_hdl, char * comment, int comment_size) 
     53  { 
     54    CTimer::get("XIOS").resume(); 
     55    if (!string_copy(file_hdl->comment.getInheritedValue(), comment, comment_size)) 
     56      ERROR("void cxios_get_file_comment(file_Ptr file_hdl, char * comment, int comment_size)", << "Input string is too short"); 
     57    CTimer::get("XIOS").suspend(); 
     58  } 
     59 
     60  bool cxios_is_defined_file_comment(file_Ptr file_hdl) 
     61  { 
     62     CTimer::get("XIOS").resume(); 
     63     bool isDefined = file_hdl->comment.hasInheritedValue(); 
    3864     CTimer::get("XIOS").suspend(); 
    3965     return isDefined; 
     
    402428 
    403429 
     430  void cxios_set_file_read_metadata_par(file_Ptr file_hdl, bool read_metadata_par) 
     431  { 
     432    CTimer::get("XIOS").resume(); 
     433    file_hdl->read_metadata_par.setValue(read_metadata_par); 
     434    CTimer::get("XIOS").suspend(); 
     435  } 
     436 
     437  void cxios_get_file_read_metadata_par(file_Ptr file_hdl, bool* read_metadata_par) 
     438  { 
     439    CTimer::get("XIOS").resume(); 
     440    *read_metadata_par = file_hdl->read_metadata_par.getInheritedValue(); 
     441    CTimer::get("XIOS").suspend(); 
     442  } 
     443 
     444  bool cxios_is_defined_file_read_metadata_par(file_Ptr file_hdl) 
     445  { 
     446     CTimer::get("XIOS").resume(); 
     447     bool isDefined = file_hdl->read_metadata_par.hasInheritedValue(); 
     448     CTimer::get("XIOS").suspend(); 
     449     return isDefined; 
     450  } 
     451 
     452 
    404453  void cxios_set_file_record_offset(file_Ptr file_hdl, int record_offset) 
    405454  { 
     
    420469     CTimer::get("XIOS").resume(); 
    421470     bool isDefined = file_hdl->record_offset.hasInheritedValue(); 
     471     CTimer::get("XIOS").suspend(); 
     472     return isDefined; 
     473  } 
     474 
     475 
     476  void cxios_set_file_split_end_offset(file_Ptr file_hdl, cxios_duration split_end_offset_c) 
     477  { 
     478    CTimer::get("XIOS").resume(); 
     479    file_hdl->split_end_offset.allocate(); 
     480    CDuration& split_end_offset = file_hdl->split_end_offset.get(); 
     481    split_end_offset.year = split_end_offset_c.year; 
     482    split_end_offset.month = split_end_offset_c.month; 
     483    split_end_offset.day = split_end_offset_c.day; 
     484    split_end_offset.hour = split_end_offset_c.hour; 
     485    split_end_offset.minute = split_end_offset_c.minute; 
     486    split_end_offset.second = split_end_offset_c.second; 
     487    split_end_offset.timestep = split_end_offset_c.timestep; 
     488    CTimer::get("XIOS").suspend(); 
     489  } 
     490 
     491  void cxios_get_file_split_end_offset(file_Ptr file_hdl, cxios_duration* split_end_offset_c) 
     492  { 
     493    CTimer::get("XIOS").resume(); 
     494    CDuration split_end_offset = file_hdl->split_end_offset.getInheritedValue(); 
     495    split_end_offset_c->year = split_end_offset.year; 
     496    split_end_offset_c->month = split_end_offset.month; 
     497    split_end_offset_c->day = split_end_offset.day; 
     498    split_end_offset_c->hour = split_end_offset.hour; 
     499    split_end_offset_c->minute = split_end_offset.minute; 
     500    split_end_offset_c->second = split_end_offset.second; 
     501    split_end_offset_c->timestep = split_end_offset.timestep; 
     502    CTimer::get("XIOS").suspend(); 
     503  } 
     504 
     505  bool cxios_is_defined_file_split_end_offset(file_Ptr file_hdl) 
     506  { 
     507     CTimer::get("XIOS").resume(); 
     508     bool isDefined = file_hdl->split_end_offset.hasInheritedValue(); 
    422509     CTimer::get("XIOS").suspend(); 
    423510     return isDefined; 
     
    489576 
    490577 
     578  void cxios_set_file_split_last_date(file_Ptr file_hdl, const char * split_last_date, int split_last_date_size) 
     579  { 
     580    std::string split_last_date_str; 
     581    if (!cstr2string(split_last_date, split_last_date_size, split_last_date_str)) return; 
     582    CTimer::get("XIOS").resume(); 
     583    file_hdl->split_last_date.setValue(split_last_date_str); 
     584    CTimer::get("XIOS").suspend(); 
     585  } 
     586 
     587  void cxios_get_file_split_last_date(file_Ptr file_hdl, char * split_last_date, int split_last_date_size) 
     588  { 
     589    CTimer::get("XIOS").resume(); 
     590    if (!string_copy(file_hdl->split_last_date.getInheritedValue(), split_last_date, split_last_date_size)) 
     591      ERROR("void cxios_get_file_split_last_date(file_Ptr file_hdl, char * split_last_date, int split_last_date_size)", << "Input string is too short"); 
     592    CTimer::get("XIOS").suspend(); 
     593  } 
     594 
     595  bool cxios_is_defined_file_split_last_date(file_Ptr file_hdl) 
     596  { 
     597     CTimer::get("XIOS").resume(); 
     598     bool isDefined = file_hdl->split_last_date.hasInheritedValue(); 
     599     CTimer::get("XIOS").suspend(); 
     600     return isDefined; 
     601  } 
     602 
     603 
     604  void cxios_set_file_split_start_offset(file_Ptr file_hdl, cxios_duration split_start_offset_c) 
     605  { 
     606    CTimer::get("XIOS").resume(); 
     607    file_hdl->split_start_offset.allocate(); 
     608    CDuration& split_start_offset = file_hdl->split_start_offset.get(); 
     609    split_start_offset.year = split_start_offset_c.year; 
     610    split_start_offset.month = split_start_offset_c.month; 
     611    split_start_offset.day = split_start_offset_c.day; 
     612    split_start_offset.hour = split_start_offset_c.hour; 
     613    split_start_offset.minute = split_start_offset_c.minute; 
     614    split_start_offset.second = split_start_offset_c.second; 
     615    split_start_offset.timestep = split_start_offset_c.timestep; 
     616    CTimer::get("XIOS").suspend(); 
     617  } 
     618 
     619  void cxios_get_file_split_start_offset(file_Ptr file_hdl, cxios_duration* split_start_offset_c) 
     620  { 
     621    CTimer::get("XIOS").resume(); 
     622    CDuration split_start_offset = file_hdl->split_start_offset.getInheritedValue(); 
     623    split_start_offset_c->year = split_start_offset.year; 
     624    split_start_offset_c->month = split_start_offset.month; 
     625    split_start_offset_c->day = split_start_offset.day; 
     626    split_start_offset_c->hour = split_start_offset.hour; 
     627    split_start_offset_c->minute = split_start_offset.minute; 
     628    split_start_offset_c->second = split_start_offset.second; 
     629    split_start_offset_c->timestep = split_start_offset.timestep; 
     630    CTimer::get("XIOS").suspend(); 
     631  } 
     632 
     633  bool cxios_is_defined_file_split_start_offset(file_Ptr file_hdl) 
     634  { 
     635     CTimer::get("XIOS").resume(); 
     636     bool isDefined = file_hdl->split_start_offset.hasInheritedValue(); 
     637     CTimer::get("XIOS").suspend(); 
     638     return isDefined; 
     639  } 
     640 
     641 
    491642  void cxios_set_file_sync_freq(file_Ptr file_hdl, cxios_duration sync_freq_c) 
    492643  { 
Note: See TracChangeset for help on using the changeset viewer.