Ignore:
Timestamp:
09/10/20 13:51:02 (4 years ago)
Author:
ymipsl
Message:

Big update on on going work related to data distribution and transfer between clients and servers.
Revisite of the source and store filter using "connectors".

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/scalar.hpp

    r1875 r1930  
    1313#include "transformation.hpp" 
    1414#include "transformation_enum.hpp" 
     15 
     16#include "element.hpp" 
     17#include "local_connector.hpp" 
     18#include "scatterer_connector.hpp" 
     19#include "gatherer_connector.hpp" 
     20#include "distribution_type.hpp" 
     21 
    1522 
    1623namespace xios 
     
    133140         void unsetCompleted(void) { isCompleted_=false ; } 
    134141 
     142 
     143 
     144       ////////////////////////////////////////////////////////////////////////////////////// 
     145       //  this part is related to distribution, element definition, views and connectors  // 
     146       ////////////////////////////////////////////////////////////////////////////////////// 
     147       private: 
     148         CLocalElement* localElement_ = nullptr ; 
     149         void initializeLocalElement(void) ; 
     150        
     151       public:   
     152         CLocalElement* getLocalElement(void) { if (localElement_==nullptr) initializeLocalElement() ; return localElement_ ; } 
     153         CLocalView* getLocalView(CElementView::type type) { return getLocalElement()->getView(type) ;} 
     154        
     155       private:   
     156         void addFullView(void) ; 
     157         void addWorkflowView(void) ; 
     158         void addModelView(void) ; 
     159         
     160       private: 
     161         CLocalConnector* modelToWorkflowConnector_ ; 
     162         void computeModelToWorkflowConnector(void)  ; 
     163       public: 
     164         CLocalConnector* getModelToWorkflowConnector(void) { if (modelToWorkflowConnector_==nullptr) computeModelToWorkflowConnector() ; return modelToWorkflowConnector_ ;} 
     165 
     166       public: 
     167         void computeRemoteElement(CContextClient* client, EDistributionType) ; 
     168         void distributeToServer(CContextClient* client, std::map<int, CArray<size_t,1>>& globalIndex) ; 
     169       private: 
     170         map<CContextClient*, CDistributedElement*> remoteElement_ ; 
     171       public:  
     172         CDistributedElement* getRemoteElement(CContextClient* client) {return remoteElement_[client] ;} 
     173       private: 
     174         map<CContextClient*, CScattererConnector*> clientToServerConnector_ ; 
     175       public:  
     176         CScattererConnector* getClientToServerConnector(CContextClient* client) { return clientToServerConnector_[client] ;} 
     177 
     178       private: 
     179         CGathererConnector*  gathererConnector_ ; 
     180         CGathererConnector* serverFromClientConnector_ ; 
     181       public: 
     182        CGathererConnector* getServerFromClientConnector(void) { return serverFromClientConnector_ ;} 
     183 
     184 
     185 
     186 
     187 
    135188      private: 
    136189            DECLARE_REF_FUNC(Scalar,scalar) 
Note: See TracChangeset for help on using the changeset viewer.