Ignore:
Timestamp:
03/30/12 15:37:54 (10 years ago)
Author:
ymipsl
Message:

Change namespace xmlioserver -> xios

YM

Location:
XIOS/trunk/src/interface
Files:
23 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/interface/c/icaxis.cpp

    r325 r335  
    11/* ************************************************************************** * 
    2  *      Copyright © IPSL/LSCE, XMLIOServer, Avril 2010 - Octobre 2011         * 
     2 *      Copyright © IPSL/LSCE, xios, Avril 2010 - Octobre 2011         * 
    33 * ************************************************************************** */ 
    44 
     
    2020   // ----------------------- Redéfinition de types ---------------------------- 
    2121    
    22    typedef xmlioserver::tree::CAxis      * XAxisPtr; 
    23    typedef xmlioserver::tree::CAxisGroup * XAxisGroupPtr; 
     22   typedef xios::tree::CAxis      * XAxisPtr; 
     23   typedef xios::tree::CAxisGroup * XAxisGroupPtr; 
    2424 
    2525   // ------------------------ Création des handle ----------------------------- 
     
    3030      if (!cstr2string(_id, _id_len, id)) return; 
    3131 
    32       *_ret = xmlioserver::CObjectFactory::GetObject<xmlioserver::tree::CAxis>(id).get(); 
     32      *_ret = xios::CObjectFactory::GetObject<xios::tree::CAxis>(id).get(); 
    3333   } 
    3434    
     
    3838      if (!cstr2string(_id, _id_len, id)) return; 
    3939 
    40       *_ret = xmlioserver::CObjectFactory::GetObject<xmlioserver::tree::CAxisGroup>(id).get(); 
     40      *_ret = xios::CObjectFactory::GetObject<xios::tree::CAxisGroup>(id).get(); 
    4141   } 
    4242 
     
    4848      if (!cstr2string(_id, _id_len, id)) return; 
    4949 
    50       *_ret = xmlioserver::CObjectFactory::HasObject<xmlioserver::tree::CAxis>(id); 
     50      *_ret = xios::CObjectFactory::HasObject<xios::tree::CAxis>(id); 
    5151   } 
    5252 
     
    5656      if (!cstr2string(_id, _id_len, id)) return; 
    5757 
    58       *_ret = xmlioserver::CObjectFactory::HasObject<xmlioserver::tree::CAxisGroup>(id); 
     58      *_ret = xios::CObjectFactory::HasObject<xios::tree::CAxisGroup>(id); 
    5959   } 
    6060    
  • XIOS/trunk/src/interface/c/iccontext.cpp

    r325 r335  
    11/* ************************************************************************** * 
    2  *      Copyright © IPSL/LSCE, XMLIOServer, Avril 2010 - Octobre 2011         * 
     2 *      Copyright © IPSL/LSCE, xios, Avril 2010 - Octobre 2011         * 
    33 * ************************************************************************** */ 
    44 
     
    2424   typedef enum { D360 = 0 , ALLLEAP, NOLEAP, JULIAN, GREGORIAN } XCalendarType ; 
    2525 
    26    typedef xmlioserver::tree::CContext * XContextPtr; 
     26   typedef xios::tree::CContext * XContextPtr; 
    2727 
    2828   // ------------------------ Création des handle ----------------------------- 
     
    3333      if (!cstr2string(_id, _id_len, id)) return; 
    3434 
    35       std::vector<boost::shared_ptr<xmlioserver::tree::CContext> > def_vector = 
    36             xmlioserver::tree::CContext::GetContextGroup()->getChildList(); 
     35      std::vector<boost::shared_ptr<xios::tree::CContext> > def_vector = 
     36            xios::tree::CContext::GetContextGroup()->getChildList(); 
    3737 
    3838      for (std::size_t i = 0; i < def_vector.size(); i++) 
     
    6060      if (!cstr2string(_id, _id_len, id)) return; 
    6161 
    62       std::vector<boost::shared_ptr<xmlioserver::tree::CContext> > def_vector = 
    63             xmlioserver::tree::CContext::GetContextGroup()->getChildList(); 
     62      std::vector<boost::shared_ptr<xios::tree::CContext> > def_vector = 
     63            xios::tree::CContext::GetContextGroup()->getChildList(); 
    6464 
    6565      for (std::size_t i = 0; i < def_vector.size(); i++) 
  • XIOS/trunk/src/interface/c/icdata.cpp

    r325 r335  
    11/* ************************************************************************** * 
    2  *      Copyright © IPSL/LSCE, XMLIOServer, Avril 2010 - Octobre 2011         * 
     2 *      Copyright © IPSL/LSCE, xios, Avril 2010 - Octobre 2011         * 
    33 * ************************************************************************** */ 
    44 
     
    3131   typedef enum { NETCDF4 = 0 } XFileType; 
    3232    
    33    typedef xmlioserver::tree::CContext * XContextPtr; 
     33   typedef xios::tree::CContext * XContextPtr; 
    3434 
    3535   // -------------------- Traitement des données ------------------------------ 
  • XIOS/trunk/src/interface/c/icdate.cpp

    r325 r335  
    11/* ************************************************************************** * 
    2  *      Copyright © IPSL/LSCE, XMLIOServer, Avril 2010 - Octobre 2011         * 
     2 *      Copyright © IPSL/LSCE, xios, Avril 2010 - Octobre 2011         * 
    33 * ************************************************************************** */ 
    44 
     
    2626      { 
    2727         date::CDuration dur = {ts_year, ts_month, ts_day, ts_hour, ts_minute, ts_second}; 
    28          boost::shared_ptr<xmlioserver::tree::CContext> context = 
    29          xmlioserver::CObjectFactory::GetObject<xmlioserver::tree::CContext> 
     28         boost::shared_ptr<xios::tree::CContext> context = 
     29         xios::CObjectFactory::GetObject<xios::tree::CContext> 
    3030            (CObjectFactory::GetCurrentContextId()); 
    3131          
     
    3333            context->sendAttributToServer("timestep") ; 
    3434      } 
    35       catch (xmlioserver::CException & exc) 
     35      catch (xios::CException & exc) 
    3636      { 
    3737         std::cerr << exc.getMessage() << std::endl; 
     
    4242   void cxios_update_calendar(int step) 
    4343   { 
    44       boost::shared_ptr<xmlioserver::tree::CContext> context = 
    45             xmlioserver::CObjectFactory::GetObject<xmlioserver::tree::CContext> 
     44      boost::shared_ptr<xios::tree::CContext> context = 
     45            xios::CObjectFactory::GetObject<xios::tree::CContext> 
    4646            (CObjectFactory::GetCurrentContextId()); 
    4747      context->updateCalendar(step) ; 
  • XIOS/trunk/src/interface/c/icdomain.cpp

    r325 r335  
    11/* ************************************************************************** * 
    2  *      Copyright © IPSL/LSCE, XMLIOServer, Avril 2010 - Octobre 2011         * 
     2 *      Copyright © IPSL/LSCE, xios, Avril 2010 - Octobre 2011         * 
    33 * ************************************************************************** */ 
    44 
     
    2020   // ----------------------- Redéfinition de types ---------------------------- 
    2121 
    22    typedef xmlioserver::tree::CDomain      * XDomainPtr; 
    23    typedef xmlioserver::tree::CDomainGroup * XDomainGroupPtr; 
     22   typedef xios::tree::CDomain      * XDomainPtr; 
     23   typedef xios::tree::CDomainGroup * XDomainGroupPtr; 
    2424 
    2525   // ------------------------ Création des handle ----------------------------- 
     
    3030      if (!cstr2string(_id, _id_len, id)) return; 
    3131 
    32       *_ret = xmlioserver::CObjectFactory::GetObject<xmlioserver::tree::CDomain>(id).get(); 
     32      *_ret = xios::CObjectFactory::GetObject<xios::tree::CDomain>(id).get(); 
    3333   } 
    3434    
     
    3838      if (!cstr2string(_id, _id_len, id)) return; 
    3939 
    40       *_ret = xmlioserver::CObjectFactory::GetObject<xmlioserver::tree::CDomainGroup>(id).get(); 
     40      *_ret = xios::CObjectFactory::GetObject<xios::tree::CDomainGroup>(id).get(); 
    4141   } 
    4242 
     
    4848      if (!cstr2string(_id, _id_len, id)) return; 
    4949 
    50       *_ret = xmlioserver::CObjectFactory::HasObject<xmlioserver::tree::CDomain>(id); 
     50      *_ret = xios::CObjectFactory::HasObject<xios::tree::CDomain>(id); 
    5151   } 
    5252 
     
    5656      if (!cstr2string(_id, _id_len, id)) return; 
    5757 
    58       *_ret = xmlioserver::CObjectFactory::HasObject<xmlioserver::tree::CDomainGroup>(id); 
     58      *_ret = xios::CObjectFactory::HasObject<xios::tree::CDomainGroup>(id); 
    5959   } 
    6060} // extern "C" 
  • XIOS/trunk/src/interface/c/icfield.cpp

    r325 r335  
    11/* ************************************************************************** * 
    2  *      Copyright © IPSL/LSCE, XMLIOServer, Avril 2010 - Octobre 2011         * 
     2 *      Copyright © IPSL/LSCE, xios, Avril 2010 - Octobre 2011         * 
    33 * ************************************************************************** */ 
    44 
     
    2020   // ----------------------- Redéfinition de types ---------------------------- 
    2121    
    22    typedef xmlioserver::tree::CField      * XFieldPtr; 
    23    typedef xmlioserver::tree::CFieldGroup * XFieldGroupPtr; 
     22   typedef xios::tree::CField      * XFieldPtr; 
     23   typedef xios::tree::CFieldGroup * XFieldGroupPtr; 
    2424    
    2525// --------------------------------------------------------------------------    
     
    3232      if (!cstr2string(_id, _id_len, id)) return; 
    3333 
    34       *_ret = xmlioserver::CObjectFactory::GetObject<xmlioserver::tree::CField>(id).get(); 
     34      *_ret = xios::CObjectFactory::GetObject<xios::tree::CField>(id).get(); 
    3535   } 
    3636    
     
    4040      if (!cstr2string(_id, _id_len, id)) return; 
    4141 
    42       *_ret = xmlioserver::CObjectFactory::GetObject<xmlioserver::tree::CFieldGroup>(id).get(); 
     42      *_ret = xios::CObjectFactory::GetObject<xios::tree::CFieldGroup>(id).get(); 
    4343   } 
    4444 
     
    5151      if (!cstr2string(_id, _id_len, id)) return; 
    5252 
    53       *_ret = xmlioserver::CObjectFactory::HasObject<xmlioserver::tree::CField>(id); 
     53      *_ret = xios::CObjectFactory::HasObject<xios::tree::CField>(id); 
    5454   } 
    5555 
     
    5959      if (!cstr2string(_id, _id_len, id)) return; 
    6060 
    61       *_ret = xmlioserver::CObjectFactory::HasObject<xmlioserver::tree::CFieldGroup>(id); 
     61      *_ret = xios::CObjectFactory::HasObject<xios::tree::CFieldGroup>(id); 
    6262   } 
    6363 
  • XIOS/trunk/src/interface/c/icfile.cpp

    r325 r335  
    11/* ************************************************************************** * 
    2  *      Copyright © IPSL/LSCE, XMLIOServer, Avril 2010 - Octobre 2011         * 
     2 *      Copyright © IPSL/LSCE, xios, Avril 2010 - Octobre 2011         * 
    33 * ************************************************************************** */ 
    44 
     
    2020   // ----------------------- Redéfinition de types ---------------------------- 
    2121    
    22    typedef xmlioserver::tree::CFile      * XFilePtr; 
    23    typedef xmlioserver::tree::CFileGroup * XFileGroupPtr; 
     22   typedef xios::tree::CFile      * XFilePtr; 
     23   typedef xios::tree::CFileGroup * XFileGroupPtr; 
    2424 
    2525   // ------------------------ Création des handle ----------------------------- 
     
    3030      if (!cstr2string(_id, _id_len, id)) return; 
    3131 
    32       *_ret = xmlioserver::CObjectFactory::GetObject<xmlioserver::tree::CFile>(id).get(); 
     32      *_ret = xios::CObjectFactory::GetObject<xios::tree::CFile>(id).get(); 
    3333   } 
    3434    
     
    3838      if (!cstr2string(_id, _id_len, id)) return; 
    3939 
    40       *_ret = xmlioserver::CObjectFactory::GetObject<xmlioserver::tree::CFileGroup>(id).get(); 
     40      *_ret = xios::CObjectFactory::GetObject<xios::tree::CFileGroup>(id).get(); 
    4141   } 
    4242 
     
    4848      if (!cstr2string(_id, _id_len, id)) return; 
    4949 
    50       *_ret = xmlioserver::CObjectFactory::HasObject<xmlioserver::tree::CFile>(id); 
     50      *_ret = xios::CObjectFactory::HasObject<xios::tree::CFile>(id); 
    5151   } 
    5252 
     
    5656      if (!cstr2string(_id, _id_len, id)) return; 
    5757 
    58       *_ret = xmlioserver::CObjectFactory::HasObject<xmlioserver::tree::CFileGroup>(id); 
     58      *_ret = xios::CObjectFactory::HasObject<xios::tree::CFileGroup>(id); 
    5959   } 
    6060} // extern "C" 
  • XIOS/trunk/src/interface/c/icgrid.cpp

    r325 r335  
    11/* ************************************************************************** * 
    2  *      Copyright © IPSL/LSCE, XMLIOServer, Avril 2010 - Octobre 2011         * 
     2 *      Copyright © IPSL/LSCE, xios, Avril 2010 - Octobre 2011         * 
    33 * ************************************************************************** */ 
    44 
     
    2020   // ----------------------- Redéfinition de types ---------------------------- 
    2121    
    22    typedef xmlioserver::tree::CGrid      * XGridPtr; 
    23    typedef xmlioserver::tree::CGridGroup * XGridGroupPtr; 
     22   typedef xios::tree::CGrid      * XGridPtr; 
     23   typedef xios::tree::CGridGroup * XGridGroupPtr; 
    2424 
    2525   // ------------------------ Création des handle ----------------------------- 
     
    3030      if (!cstr2string(_id, _id_len, id)) return; 
    3131 
    32       *_ret = xmlioserver::CObjectFactory::GetObject<xmlioserver::tree::CGrid>(id).get(); 
     32      *_ret = xios::CObjectFactory::GetObject<xios::tree::CGrid>(id).get(); 
    3333   } 
    3434    
     
    3838      if (!cstr2string(_id, _id_len, id)) return; 
    3939 
    40       *_ret = xmlioserver::CObjectFactory::GetObject<xmlioserver::tree::CGridGroup>(id).get(); 
     40      *_ret = xios::CObjectFactory::GetObject<xios::tree::CGridGroup>(id).get(); 
    4141   } 
    4242 
     
    4848      if (!cstr2string(_id, _id_len, id)) return; 
    4949 
    50       *_ret = xmlioserver::CObjectFactory::HasObject<xmlioserver::tree::CGrid>(id); 
     50      *_ret = xios::CObjectFactory::HasObject<xios::tree::CGrid>(id); 
    5151   } 
    5252 
     
    5656      if (!cstr2string(_id, _id_len, id)) return; 
    5757 
    58       *_ret = xmlioserver::CObjectFactory::HasObject<xmlioserver::tree::CGridGroup>(id); 
     58      *_ret = xios::CObjectFactory::HasObject<xios::tree::CGridGroup>(id); 
    5959   } 
    6060} // extern "C" 
  • XIOS/trunk/src/interface/c/icutil.hpp

    r325 r335  
    11/* ************************************************************************** * 
    2  *      Copyright © IPSL/LSCE, XMLIOServer, Avril 2010 - Octobre 2011         * 
     2 *      Copyright © IPSL/LSCE, xios, Avril 2010 - Octobre 2011         * 
    33 * ************************************************************************** */ 
    44 
  • XIOS/trunk/src/interface/c/icxml_tree.cpp

    r325 r335  
    11/* ************************************************************************** * 
    2  *      Copyright © IPSL/LSCE, XMLIOServer, Avril 2010 - Octobre 2011         * 
     2 *      Copyright © IPSL/LSCE, xios, Avril 2010 - Octobre 2011         * 
    33 * ************************************************************************** */ 
    44 
     
    2020   // ----------------------- Redéfinition de types ---------------------------- 
    2121 
    22    typedef xmlioserver::tree::CContext * XContextPtr; 
    23  
    24    typedef xmlioserver::tree::CGrid      * XGridPtr; 
    25    typedef xmlioserver::tree::CGridGroup * XGridGroupPtr; 
    26  
    27    typedef xmlioserver::tree::CFile      * XFilePtr; 
    28    typedef xmlioserver::tree::CFileGroup * XFileGroupPtr; 
    29  
    30    typedef xmlioserver::tree::CField      * XFieldPtr; 
    31    typedef xmlioserver::tree::CFieldGroup * XFieldGroupPtr; 
    32  
    33    typedef xmlioserver::tree::CDomain      * XDomainPtr; 
    34    typedef xmlioserver::tree::CDomainGroup * XDomainGroupPtr; 
    35  
    36    typedef xmlioserver::tree::CAxis      * XAxisPtr; 
    37    typedef xmlioserver::tree::CAxisGroup * XAxisGroupPtr; 
     22   typedef xios::tree::CContext * XContextPtr; 
     23 
     24   typedef xios::tree::CGrid      * XGridPtr; 
     25   typedef xios::tree::CGridGroup * XGridGroupPtr; 
     26 
     27   typedef xios::tree::CFile      * XFilePtr; 
     28   typedef xios::tree::CFileGroup * XFileGroupPtr; 
     29 
     30   typedef xios::tree::CField      * XFieldPtr; 
     31   typedef xios::tree::CFieldGroup * XFieldGroupPtr; 
     32 
     33   typedef xios::tree::CDomain      * XDomainPtr; 
     34   typedef xios::tree::CDomainGroup * XDomainGroupPtr; 
     35 
     36   typedef xios::tree::CAxis      * XAxisPtr; 
     37   typedef xios::tree::CAxisGroup * XAxisGroupPtr; 
    3838    
    3939   // ----------------------- Ajout d'enfant à un parent ----------------------- 
     
    247247      { 
    248248         if (cstr2string(filename, filename_size, filename_str)) 
    249             xmlioserver::CTreeManager::PrintTreeToFile(filename_str); 
     249            xios::CTreeManager::PrintTreeToFile(filename_str); 
    250250         else 
    251             xmlioserver::CTreeManager::PrintTreeToStream(std::clog); 
    252       } 
    253       catch (xmlioserver::CException & exc) 
     251            xios::CTreeManager::PrintTreeToStream(std::clog); 
     252      } 
     253      catch (xios::CException & exc) 
    254254      { 
    255255         std::cerr << exc.getMessage() << std::endl; 
     
    268268      try 
    269269      { 
    270          xmlioserver::CTreeManager::ParseFile(filename_str); 
    271       } 
    272       catch (xmlioserver::CException & exc) 
     270         xios::CTreeManager::ParseFile(filename_str); 
     271      } 
     272      catch (xios::CException & exc) 
    273273      { 
    274274         std::cerr << exc.getMessage() << std::endl; 
     
    284284      try 
    285285      { 
    286          xmlioserver::CTreeManager::ParseString(xmlcontent_str); 
    287       } 
    288       catch (xmlioserver::CException & exc) 
     286         xios::CTreeManager::ParseString(xmlcontent_str); 
     287      } 
     288      catch (xios::CException & exc) 
    289289      { 
    290290         std::cerr << exc.getMessage() << std::endl; 
  • XIOS/trunk/src/interface/c/oasis_cinterface.cpp

    r325 r335  
    33#include <mpi.h> 
    44 
    5 namespace xmlioserver 
     5namespace xios 
    66{  
    77  
  • XIOS/trunk/src/interface/c/oasis_cinterface.hpp

    r325 r335  
    1414} 
    1515  
    16 namespace xmlioserver 
     16namespace xios 
    1717{ 
    1818  void oasis_init(const std::string& server_id) ; 
  • XIOS/trunk/src/interface/c_attr/icaxis_attr.cpp

    r325 r335  
    1313extern "C" 
    1414{ 
    15   typedef xmlioserver::tree::CAxis*  axis_Ptr; 
     15  typedef xios::tree::CAxis*  axis_Ptr; 
    1616   
    1717  void cxios_set_axis_long_name(axis_Ptr axis_hdl, const char * long_name, int long_name_size) 
  • XIOS/trunk/src/interface/c_attr/icaxisgroup_attr.cpp

    r325 r335  
    1313extern "C" 
    1414{ 
    15   typedef xmlioserver::tree::CAxisGroup*  axisgroup_Ptr; 
     15  typedef xios::tree::CAxisGroup*  axisgroup_Ptr; 
    1616   
    1717  void cxios_set_axisgroup_group_ref(axisgroup_Ptr axisgroup_hdl, const char * group_ref, int group_ref_size) 
  • XIOS/trunk/src/interface/c_attr/iccontext_attr.cpp

    r325 r335  
    1313extern "C" 
    1414{ 
    15   typedef xmlioserver::tree::CContext*  context_Ptr; 
     15  typedef xios::tree::CContext*  context_Ptr; 
    1616   
    1717  void cxios_set_context_calendar_type(context_Ptr context_hdl, const char * calendar_type, int calendar_type_size) 
  • XIOS/trunk/src/interface/c_attr/icdomain_attr.cpp

    r325 r335  
    1313extern "C" 
    1414{ 
    15   typedef xmlioserver::tree::CDomain*  domain_Ptr; 
     15  typedef xios::tree::CDomain*  domain_Ptr; 
    1616   
    1717  void cxios_set_domain_data_dim(domain_Ptr domain_hdl, int data_dim) 
  • XIOS/trunk/src/interface/c_attr/icdomaingroup_attr.cpp

    r325 r335  
    1313extern "C" 
    1414{ 
    15   typedef xmlioserver::tree::CDomainGroup*  domaingroup_Ptr; 
     15  typedef xios::tree::CDomainGroup*  domaingroup_Ptr; 
    1616   
    1717  void cxios_set_domaingroup_data_dim(domaingroup_Ptr domaingroup_hdl, int data_dim) 
  • XIOS/trunk/src/interface/c_attr/icfield_attr.cpp

    r325 r335  
    1313extern "C" 
    1414{ 
    15   typedef xmlioserver::tree::CField*  field_Ptr; 
     15  typedef xios::tree::CField*  field_Ptr; 
    1616   
    1717  void cxios_set_field_axis_ref(field_Ptr field_hdl, const char * axis_ref, int axis_ref_size) 
  • XIOS/trunk/src/interface/c_attr/icfieldgroup_attr.cpp

    r325 r335  
    1313extern "C" 
    1414{ 
    15   typedef xmlioserver::tree::CFieldGroup*  fieldgroup_Ptr; 
     15  typedef xios::tree::CFieldGroup*  fieldgroup_Ptr; 
    1616   
    1717  void cxios_set_fieldgroup_axis_ref(fieldgroup_Ptr fieldgroup_hdl, const char * axis_ref, int axis_ref_size) 
  • XIOS/trunk/src/interface/c_attr/icfile_attr.cpp

    r325 r335  
    1313extern "C" 
    1414{ 
    15   typedef xmlioserver::tree::CFile*  file_Ptr; 
     15  typedef xios::tree::CFile*  file_Ptr; 
    1616   
    1717  void cxios_set_file_description(file_Ptr file_hdl, const char * description, int description_size) 
  • XIOS/trunk/src/interface/c_attr/icfilegroup_attr.cpp

    r325 r335  
    1313extern "C" 
    1414{ 
    15   typedef xmlioserver::tree::CFileGroup*  filegroup_Ptr; 
     15  typedef xios::tree::CFileGroup*  filegroup_Ptr; 
    1616   
    1717  void cxios_set_filegroup_description(filegroup_Ptr filegroup_hdl, const char * description, int description_size) 
  • XIOS/trunk/src/interface/c_attr/icgrid_attr.cpp

    r325 r335  
    1313extern "C" 
    1414{ 
    15   typedef xmlioserver::tree::CGrid*  grid_Ptr; 
     15  typedef xios::tree::CGrid*  grid_Ptr; 
    1616   
    1717  void cxios_set_grid_axis_ref(grid_Ptr grid_hdl, const char * axis_ref, int axis_ref_size) 
  • XIOS/trunk/src/interface/c_attr/icgridgroup_attr.cpp

    r325 r335  
    1313extern "C" 
    1414{ 
    15   typedef xmlioserver::tree::CGridGroup*  gridgroup_Ptr; 
     15  typedef xios::tree::CGridGroup*  gridgroup_Ptr; 
    1616   
    1717  void cxios_set_gridgroup_axis_ref(gridgroup_Ptr gridgroup_hdl, const char * axis_ref, int axis_ref_size) 
Note: See TracChangeset for help on using the changeset viewer.