Ignore:
Timestamp:
04/12/12 17:02:23 (12 years ago)
Author:
ymipsl
Message:

Suppress access to CObjectFactory class and CTreeManager.

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/node/context.cpp

    r345 r346  
    1212#include "context_server.hpp" 
    1313#include "nc4_data_output.hpp" 
     14#include "node_type.hpp" 
    1415 
    1516namespace xios { 
     17   
     18  shared_ptr<CContextGroup> CContext::root ; 
    1619    
    1720   /// ////////////////////// Définitions ////////////////////// /// 
     
    4144   //---------------------------------------------------------------- 
    4245 
    43    boost::shared_ptr<CContextGroup> CContext::GetContextGroup(void) 
     46   boost::shared_ptr<CContextGroup> CContext::getRoot(void) 
    4447   {   
    45       static boost::shared_ptr<CContextGroup> group_context 
    46                           (new CContextGroup(xml::CXMLNode::GetRootName())); 
    47       return (group_context);  
     48      if (root.get()==NULL) root=shared_ptr<CContextGroup>(new CContextGroup(xml::CXMLNode::GetRootName())) ; 
     49      return root;  
    4850   } 
    4951    
     
    134136#define DECLARE_NODE(Name_, name_)    \ 
    135137   if (name.compare(C##Name_##Definition::GetDefName()) == 0) \ 
    136    { CObjectFactory::CreateObject<C##Name_##Definition>(C##Name_##Definition::GetDefName()) -> parse(node); \ 
    137    continue; } 
     138   { C##Name_##Definition::create(C##Name_##Definition::GetDefName()) -> parse(node) ; continue; } 
    138139#define DECLARE_NODE_PAR(Name_, name_) 
    139140#include "node_type.conf" 
    140141 
    141142            DEBUG(<< "L'élément nommé \'"     << name 
    142                   << "\' dans le contexte \'" << CObjectFactory::GetCurrentContextId() 
     143                  << "\' dans le contexte \'" << CContext::getCurrent()->getId() 
    143144                  << "\' ne représente pas une définition !"); 
    144145 
     
    153154   void CContext::ShowTree(StdOStream & out) 
    154155   { 
    155       StdString currentContextId = 
    156          CObjectFactory::GetCurrentContextId(); 
     156      StdString currentContextId = CContext::getCurrent() -> getId() ; 
    157157      std::vector<boost::shared_ptr<CContext> > def_vector = 
    158          CContext::GetContextGroup()->getChildList(); 
     158         CContext::getRoot()->getChildList(); 
    159159      std::vector<boost::shared_ptr<CContext> >::iterator 
    160160         it = def_vector.begin(), end = def_vector.end(); 
     
    166166      { 
    167167         boost::shared_ptr<CContext> context = *it;          
    168          CTreeManager::SetCurrentContextId(context->getId());          
     168         CContext::setCurrent(context->getId());          
    169169         out << *context << std::endl; 
    170170      } 
    171171       
    172172      out << "</" << xml::CXMLNode::GetRootName() << " >" << std::endl; 
    173       CTreeManager::SetCurrentContextId(currentContextId);   
     173      CContext::setCurrent(currentContextId);   
    174174   } 
    175175    
     
    179179   { 
    180180      SuperClass::toBinary(os); 
    181         
     181 
    182182#define DECLARE_NODE(Name_, name_)                                         \ 
    183183   {                                                                       \ 
    184184      ENodeType renum = C##Name_##Definition::GetType();                   \ 
    185       bool val = CObjectFactory::HasObject<C##Name_##Definition>           \ 
    186                      (C##Name_##Definition::GetDefName());                 \ 
     185      bool val = C##Name_##Definition::has(C##Name_##Definition::GetDefName()); \ 
    187186      os.write (reinterpret_cast<const char*>(&renum), sizeof(ENodeType)); \ 
    188187      os.write (reinterpret_cast<const char*>(&val), sizeof(bool));        \ 
    189       if (val) CObjectFactory::GetObject<C##Name_##Definition>             \ 
    190                      (C##Name_##Definition::GetDefName())->toBinary(os);   \ 
     188      if (val) C##Name_##Definition::get(C##Name_##Definition::GetDefName())->toBinary(os);   \ 
    191189   }    
    192190#define DECLARE_NODE_PAR(Name_, name_) 
     
    208206         ERROR("CContext::fromBinary(StdIStream & is)",                    \ 
    209207               << "[ renum = " << renum << "] Bad type !");                \ 
    210       if (val) CObjectFactory::CreateObject<C##Name_##Definition>          \ 
    211                    (C##Name_##Definition::GetDefName()) -> fromBinary(is); \ 
     208      if (val) C##Name_##Definition::create(C##Name_##Definition::GetDefName()) -> fromBinary(is); \ 
    212209   }    
    213210#define DECLARE_NODE_PAR(Name_, name_) 
     
    233230 
    234231#define DECLARE_NODE(Name_, name_)    \ 
    235    if (CObjectFactory::HasObject<C##Name_##Definition>(C##Name_##Definition::GetDefName())) \ 
    236    oss << *CObjectFactory::GetObject<C##Name_##Definition>(C##Name_##Definition::GetDefName()) << std::endl; 
     232   if (C##Name_##Definition::has(C##Name_##Definition::GetDefName())) \ 
     233   oss << * C##Name_##Definition::get(C##Name_##Definition::GetDefName()) << std::endl; 
    237234#define DECLARE_NODE_PAR(Name_, name_) 
    238235#include "node_type.conf" 
     
    250247   { 
    251248#define DECLARE_NODE(Name_, name_)    \ 
    252    if (CObjectFactory::HasObject<C##Name_##Definition>(C##Name_##Definition::GetDefName())) \ 
    253    CObjectFactory::GetObject<C##Name_##Definition>(C##Name_##Definition::GetDefName())->solveDescInheritance(); 
     249   if (C##Name_##Definition::has(C##Name_##Definition::GetDefName())) \  
     250     C##Name_##Definition::get(C##Name_##Definition::GetDefName())->solveDescInheritance(); 
    254251#define DECLARE_NODE_PAR(Name_, name_) 
    255252#include "node_type.conf" 
     
    262259      return ( 
    263260#define DECLARE_NODE(Name_, name_)    \ 
    264    CObjectFactory::HasObject<C##Name_##Definition>  (C##Name_##Definition::GetDefName())   || 
     261   C##Name_##Definition::has(C##Name_##Definition::GetDefName())   || 
    265262#define DECLARE_NODE_PAR(Name_, name_) 
    266263#include "node_type.conf" 
     
    273270   { 
    274271      if (!this->hasId()) return; 
    275       std::vector<boost::shared_ptr<CField> > allField 
     272      std::vector<boost::shared_ptr<CField> >& allField 
    276273               = CObjectTemplate<CField>::GetAllVectobject(this->getId()); 
    277274      std::vector<boost::shared_ptr<CField> >::iterator  
     
    379376 
    380377     // Résolution des héritages par référence au niveau des fichiers. 
    381       const std::vector<boost::shared_ptr<CFile> > & allFiles 
    382              = CObjectFactory::GetObjectVector<CFile>(); 
     378      const std::vector<boost::shared_ptr<CFile> > & allFiles=CFile::getAll() ; 
    383379 
    384380      for (unsigned int i = 0; i < allFiles.size(); i++) 
     
    388384   void CContext::findEnabledFiles(void) 
    389385   { 
    390       const std::vector<boost::shared_ptr<CFile> > & allFiles 
    391           = CObjectFactory::GetObjectVector<CFile>(); 
     386      const std::vector<boost::shared_ptr<CFile> > & allFiles = CFile::getAll(); 
    392387 
    393388      for (unsigned int i = 0; i < allFiles.size(); i++) 
     
    541536   }  
    542537    
    543    shared_ptr<CContext> CContext::current(void) 
     538   shared_ptr<CContext> CContext::getCurrent(void) 
    544539   { 
    545540     return CObjectFactory::GetObject<CContext>(CObjectFactory::GetCurrentContextId()) ; 
    546541   } 
    547542    
     543   void CContext::setCurrent(const string& id) 
     544   { 
     545     CObjectFactory::SetCurrentContextId(id); 
     546     CGroupFactory::SetCurrentContextId(id); 
     547   } 
     548    
     549  boost::shared_ptr<CContext> CContext::create(const StdString& id) 
     550  { 
     551    CContext::setCurrent(id) ; 
     552  
     553    bool hasctxt = CContext::has(id); 
     554    boost::shared_ptr<CContext> context = CObjectFactory::CreateObject<CContext>(id); 
     555    if (!hasctxt) CGroupFactory::AddChild(getRoot(), context); 
     556 
     557#define DECLARE_NODE(Name_, name_) \ 
     558    C##Name_##Definition::create(C##Name_##Definition::GetDefName()); 
     559#define DECLARE_NODE_PAR(Name_, name_) 
     560#include "node_type.conf" 
     561 
     562    return (context); 
     563  } 
    548564} // namespace xios 
Note: See TracChangeset for help on using the changeset viewer.