- Timestamp:
- 09/25/20 16:09:35 (4 years ago)
- Location:
- XIOS/dev/dev_ym/XIOS_COUPLING/src
- Files:
-
- 2 added
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/grid_gatherer_connector.hpp
r1918 r1943 41 41 } 42 42 43 template<typename T> 44 void transfer(const map<int, CArray<T,1>>& input, CArray<T,1>& output, T missingValue) 45 { 46 int n = elementsConnector_.size()-1 ; 47 CGathererConnector** connector = elementsConnector_.data() + n ; 48 output.resize(dstSize_) ; 49 output = missingValue ; 50 for(auto& rankDataIn : input) 51 { 52 elementsConnector_[n]->transfer(rankDataIn.first, connector, n, rankDataIn.second.dataFirst(), output.dataFirst()) ; 53 } 54 } 55 43 56 template<typename T> 44 57 void transfer(CEventServer& event, CArray<T,1>& dataOut) … … 52 65 transfer(dataIn, dataOut) ; 53 66 } 54 67 68 template<typename T> 69 void transfer(CEventServer& event, CArray<T,1>& dataOut, T missingValue) 70 { 71 map<int, CArray<T,1>> dataIn ; 72 for (auto& subEvent : event.subEvents) 73 { 74 auto& data = dataIn[subEvent.rank]; 75 (*subEvent.buffer) >> data ; 76 } 77 transfer(dataIn, dataOut, missingValue) ; 78 } 79 55 80 }; 56 81 } -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/scatterer_connector.cpp
r1918 r1943 51 51 52 52 // compute the number of senders for a remote destination view 53 int commSize ; 54 MPI_Comm_size(localComm_, &commSize) ; 55 vector<int> ranks(commSize,0) ; 53 vector<int> ranks(remoteCommSize_,0) ; 56 54 for(auto& rank : connector_) ranks[rank.first] = 1 ; 57 MPI_Allreduce(MPI_IN_PLACE,ranks.data(), commSize,MPI_INT,MPI_SUM,localComm_) ;55 MPI_Allreduce(MPI_IN_PLACE,ranks.data(),remoteCommSize_,MPI_INT,MPI_SUM,localComm_) ; 58 56 for(auto& rank : connector_) nbSenders_[rank.first] = ranks[rank.first] ; 59 57 -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/scatterer_connector.hpp
r1930 r1943 21 21 map<int, vector<bool>> mask_ ; // mask is on dst view 22 22 MPI_Comm localComm_ ; 23 int remoteCommSize_ ; 23 24 24 25 CLocalView* srcView_ ; … … 30 31 public: 31 32 32 CScattererConnector(CLocalView* srcView, CDistributedView* dstView, MPI_Comm localComm )33 : srcView_(srcView), dstView_(dstView), localComm_(localComm) {}33 CScattererConnector(CLocalView* srcView, CDistributedView* dstView, MPI_Comm localComm, int remoteCommSize) 34 : srcView_(srcView), dstView_(dstView), localComm_(localComm), remoteCommSize_(remoteCommSize) {} 34 35 void computeConnector(void) ; 35 36 -
XIOS/dev/dev_ym/XIOS_COUPLING/src/node/axis.cpp
r1939 r1943 1656 1656 CDistributedElement scatteredElement(n_glo,globalIndex) ; 1657 1657 scatteredElement.addFullView() ; 1658 CScattererConnector scattererConnector(localElement_->getView(CElementView::FULL), scatteredElement.getView(CElementView::FULL), context->getIntraComm()) ; 1658 CScattererConnector scattererConnector(localElement_->getView(CElementView::FULL), scatteredElement.getView(CElementView::FULL), 1659 context->getIntraComm(), client->getRemoteSize()) ; 1659 1660 scattererConnector.computeConnector() ; 1660 1661 … … 1696 1697 message2<<serverAxisId<<2 ; 1697 1698 clientToServerElement.sendToServer(client, event2, message2) ; 1698 clientToServerConnector_[client] = new CScattererConnector(localElement_->getView(CElementView::WORKFLOW), 1699 c lientToServerElement.getView(CElementView::FULL), context->getIntraComm()) ;1699 clientToServerConnector_[client] = new CScattererConnector(localElement_->getView(CElementView::WORKFLOW), clientToServerElement.getView(CElementView::FULL), 1700 context->getIntraComm(), client->getRemoteSize()) ; 1700 1701 clientToServerConnector_[client]->computeConnector() ; 1701 1702 1703 CEventClient event3(getType(), EVENT_ID_AXIS_DISTRIBUTION);1704 CMessage message3 ;1705 message3<<serverAxisId<<3 ;1706 clientToServerConnector_[client]->transfer(maskIn,client,event3,message3) ;1707 1702 1708 1703 clientFromServerConnector_[client] = new CGathererConnector(clientToServerElement.getView(CElementView::FULL), localElement_->getView(CElementView::WORKFLOW)); … … 1763 1758 gathererConnector_ -> computeConnector() ; 1764 1759 } 1765 else if (phasis==3) 1766 { 1767 CArray<bool,1> localMask ; 1768 gathererConnector_->transfer(event,localMask,false) ; 1769 localElement_->addView(CElementView::WORKFLOW, localMask) ; 1770 mask.reference(localMask.copy()) ; 1760 1761 } 1762 CATCH 1763 1764 void CAxis::setServerMask(CArray<bool,1>& serverMask, CContextClient* client) 1765 TRY 1766 { 1767 CContext* context = CContext::getCurrent(); 1768 localElement_->addView(CElementView::WORKFLOW, serverMask) ; 1769 mask.reference(serverMask.copy()) ; 1771 1770 1772 serverFromClientConnector_ = new CGathererConnector(elementFrom_->getView(CElementView::FULL), localElement_->getView(CElementView::WORKFLOW)) ; 1773 serverFromClientConnector_->computeConnector() ; 1774 1775 serverToClientConnector_ = new CScattererConnector(localElement_->getView(CElementView::WORKFLOW), elementFrom_->getView(CElementView::FULL), 1776 context->getIntraComm()) ; 1777 serverToClientConnector_->computeConnector() ; 1778 1779 } 1780 } 1781 CATCH 1771 serverFromClientConnector_ = new CGathererConnector(elementFrom_->getView(CElementView::FULL), localElement_->getView(CElementView::WORKFLOW)) ; 1772 serverFromClientConnector_->computeConnector() ; 1773 1774 serverToClientConnector_ = new CScattererConnector(localElement_->getView(CElementView::WORKFLOW), elementFrom_->getView(CElementView::FULL), 1775 context->getIntraComm(), client->getRemoteSize()) ; 1776 serverToClientConnector_->computeConnector() ; 1777 } 1778 CATCH_DUMP_ATTR 1782 1779 1783 1780 void CAxis::sendDistributedAttributes(CContextClient* client, CScattererConnector& scattererConnector, const string& axisId) -
XIOS/dev/dev_ym/XIOS_COUPLING/src/node/axis.hpp
r1934 r1943 258 258 static void recvAxisDistribution(CEventServer& event) ; 259 259 void receivedAxisDistribution(CEventServer& event, int phasis) ; 260 260 void setServerMask(CArray<bool,1>& serverMask, CContextClient* client ) ; 261 261 void sendDistributedAttributes(CContextClient* client, CScattererConnector& scattererConnector, const string& axisId) ; 262 262 static void recvDistributedAttributes(CEventServer& event) ; … … 272 272 private: 273 273 CGathererConnector* gathererConnector_ ; 274 public: 275 CGathererConnector* getGathererConnector(void) { return gathererConnector_ ;} 276 private: 274 277 CGathererConnector* serverFromClientConnector_ ; 275 278 CDistributedElement* elementFrom_ ; -
XIOS/dev/dev_ym/XIOS_COUPLING/src/node/domain.cpp
r1938 r1943 2305 2305 CDistributedElement scatteredElement(ni_glo*nj_glo, globalIndex) ; 2306 2306 scatteredElement.addFullView() ; 2307 CScattererConnector scattererConnector(localElement_->getView(CElementView::FULL), scatteredElement.getView(CElementView::FULL), context->getIntraComm()) ; 2307 CScattererConnector scattererConnector(localElement_->getView(CElementView::FULL), scatteredElement.getView(CElementView::FULL), 2308 context->getIntraComm(), client->getRemoteSize()) ; 2308 2309 scattererConnector.computeConnector() ; 2309 2310 … … 2347 2348 message2<<serverDomainId<<2 ; 2348 2349 clientToServerElement.sendToServer(client, event2, message2) ; 2349 clientToServerConnector_[client] = new CScattererConnector(localElement_->getView(CElementView::WORKFLOW), 2350 clientToServerElement.getView(CElementView::FULL), context->getIntraComm()) ;2350 clientToServerConnector_[client] = new CScattererConnector(localElement_->getView(CElementView::WORKFLOW), clientToServerElement.getView(CElementView::FULL), 2351 context->getIntraComm(), client->getRemoteSize()) ; 2351 2352 clientToServerConnector_[client]->computeConnector() ; 2352 2353 2353 2354 CEventClient event3(getType(), EVENT_ID_DOMAIN_DISTRIBUTION);2355 CMessage message3 ;2356 message3<<serverDomainId<<3 ;2357 clientToServerConnector_[client]->transfer(maskIn,client,event3,message3) ;2358 2359 2354 clientFromServerConnector_[client] = new CGathererConnector(clientToServerElement.getView(CElementView::FULL), localElement_->getView(CElementView::WORKFLOW)); 2360 2355 clientFromServerConnector_[client]->computeConnector() ; … … 2418 2413 gathererConnector_ -> computeConnector() ; 2419 2414 } 2420 else if (phasis==3) 2421 { 2422 CArray<bool,1> localMask ; 2423 gathererConnector_->transfer(event,localMask,false) ; 2424 localElement_->addView(CElementView::WORKFLOW, localMask) ; 2425 mask_1d.reference(localMask.copy()) ; 2415 } 2416 CATCH 2417 2418 void CDomain::setServerMask(CArray<bool,1>& serverMask, CContextClient* client) 2419 TRY 2420 { 2421 // nota : the client is needed to get the remote size for the scatterer connector. Maybe it is not the good place for this 2422 // Later, server to client connector can be computed on demand, with "client" as argument 2423 CContext* context = CContext::getCurrent(); 2424 localElement_->addView(CElementView::WORKFLOW, serverMask) ; 2425 mask_1d.reference(serverMask.copy()) ; 2426 2426 2427 2428 2427 serverFromClientConnector_ = new CGathererConnector(elementFrom_->getView(CElementView::FULL), localElement_->getView(CElementView::WORKFLOW)) ; 2428 serverFromClientConnector_->computeConnector() ; 2429 2429 2430 serverToClientConnector_ = new CScattererConnector(localElement_->getView(CElementView::WORKFLOW), elementFrom_->getView(CElementView::FULL), 2431 context->getIntraComm()) ; 2432 serverToClientConnector_->computeConnector() ; 2433 2434 } 2435 } 2436 CATCH 2430 serverToClientConnector_ = new CScattererConnector(localElement_->getView(CElementView::WORKFLOW), elementFrom_->getView(CElementView::FULL), 2431 context->getIntraComm(), client->getRemoteSize()) ; 2432 serverToClientConnector_->computeConnector() ; 2433 } 2434 CATCH_DUMP_ATTR 2437 2435 2438 2436 … … 2579 2577 CDistributedElement scatteredElement(remoteElement.getGlobalSize(), remoteConnector.getDistributedGlobalIndex()) ; 2580 2578 scatteredElement.addFullView() ; 2581 CScattererConnector scatterConnector(localElement_->getView(CElementView::FULL), scatteredElement.getView(CElementView::FULL), context->getIntraComm()) ; 2579 CScattererConnector scatterConnector(localElement_->getView(CElementView::FULL), scatteredElement.getView(CElementView::FULL), 2580 context->getIntraComm(), client->getRemoteSize()) ; 2582 2581 scatterConnector.computeConnector() ; 2583 2582 CGridScattererConnector gridScatter({&scatterConnector}) ; -
XIOS/dev/dev_ym/XIOS_COUPLING/src/node/domain.hpp
r1934 r1943 212 212 private: 213 213 std::set<CContextClient*> sendDomainToFileServer_done_ ; 214 private: 215 public: 214 public: 216 215 void sendDomainToCouplerOut(CContextClient* client, const string& fieldId, int posInGrid) ; 217 216 private: … … 341 340 static void recvDistributedAttributes(CEventServer& event) ; 342 341 void recvDistributedAttributes(CEventServer& event, const string& type) ; 342 void setServerMask(CArray<bool,1>& serverMask, CContextClient* client) ; 343 343 344 private: 344 345 map<CContextClient*, CDistributedElement*> remoteElement_ ; … … 352 353 private: 353 354 CGathererConnector* gathererConnector_ ; 355 public: 356 CGathererConnector* getGathererConnector(void) { return gathererConnector_ ;} 357 private: 354 358 CGathererConnector* serverFromClientConnector_ ; 355 359 CDistributedElement* elementFrom_ ; -
XIOS/dev/dev_ym/XIOS_COUPLING/src/node/grid.cpp
r1940 r1943 23 23 #include "grid_elements.hpp" 24 24 #include "grid_local_view.hpp" 25 #include "grid_mask_connector.hpp" 25 26 26 27 … … 275 276 TRY 276 277 { 278 setDomainList(); 277 279 std::vector<CDomain*> domList; 278 280 if (!domList_.empty()) … … 291 293 TRY 292 294 { 295 setAxisList(); 293 296 std::vector<CAxis*> aList; 294 297 if (!axisList_.empty()) … … 306 309 TRY 307 310 { 311 setScalarList() ; 308 312 std::vector<CScalar*> sList; 309 313 if (!scalarList_.empty()) … … 2597 2601 return true; 2598 2602 break; 2603 2604 case EVENT_ID_SEND_MASK : 2605 recvMask(event); 2606 return true; 2607 break; 2599 2608 default : 2600 ERROR("bool C Domain::dispatchEvent(CEventServer& event)",2609 ERROR("bool CGrid::dispatchEvent(CEventServer& event)", 2601 2610 << "Unknown Event"); 2602 2611 return false; … … 2671 2680 gridRemoteConnector.computeConnector() ; 2672 2681 2673 vector<CScattererConnector*> clientToServerConnectors ; 2674 vector<CGathererConnector*> clientFromServerConnectors ; 2682 vector<CScattererConnector*> scattererConnectors ; 2675 2683 for(int i=0 ; i<elements.size() ; i++) 2676 2684 { … … 2680 2688 sendAddDomain(domain->getId(),client) ; 2681 2689 domain->distributeToServer(client, gridRemoteConnector.getDistributedGlobalIndex(i)) ; 2682 clientToServerConnectors.push_back(domain->getClientToServerConnector(client)) ; 2683 clientFromServerConnectors.push_back(domain->getClientFromServerConnector(client)) ; 2690 scattererConnectors.push_back(domain->getClientToServerConnector(client)) ; 2684 2691 } 2685 2692 else if (elements[i].type==TYPE_AXIS) … … 2688 2695 sendAddAxis(axis->getId(),client) ; 2689 2696 axis->distributeToServer(client, gridRemoteConnector.getDistributedGlobalIndex(i)) ; 2690 clientToServerConnectors.push_back(axis->getClientToServerConnector(client)) ; 2691 clientFromServerConnectors.push_back(axis->getClientFromServerConnector(client)) ; 2692 2697 scattererConnectors.push_back(axis->getClientToServerConnector(client)) ; 2693 2698 } 2694 2699 else if (elements[i].type==TYPE_SCALAR) … … 2697 2702 sendAddScalar(scalar->getId(),client) ; 2698 2703 scalar->distributeToServer(client, gridRemoteConnector.getDistributedGlobalIndex(i)) ; 2699 clientToServerConnectors.push_back(scalar->getClientToServerConnector(client)) ; 2700 clientFromServerConnectors.push_back(scalar->getClientFromServerConnector(client)) ; 2704 scattererConnectors.push_back(scalar->getClientToServerConnector(client)) ; 2705 } 2706 } 2707 2708 CGridScattererConnector gridScattererConnector(scattererConnectors) ; 2709 CGridLocalConnector* workflowToFull = getGridLocalElements()->getConnector(CElementView::WORKFLOW, CElementView::FULL) ; 2710 CArray<bool,1> maskIn(workflowToFull->getSrcSize()) ; 2711 CArray<bool,1> maskOut(workflowToFull->getDstSize()) ; 2712 maskIn = true ; 2713 workflowToFull->transfer(maskIn,maskOut,false) ; 2714 2715 CEventClient event(getType(), EVENT_ID_SEND_MASK); 2716 CMessage message ; 2717 message<<getId() ; 2718 gridScattererConnector.transfer(maskOut, client, event, message) ; 2719 2720 2721 vector<CScattererConnector*> clientToServerConnectors ; 2722 vector<CGathererConnector*> clientFromServerConnectors ; 2723 for(auto& element : elements) 2724 { 2725 if (element.type==TYPE_DOMAIN) 2726 { 2727 clientToServerConnectors.push_back(element.domain->getClientToServerConnector(client)) ; 2728 clientFromServerConnectors.push_back(element.domain->getClientFromServerConnector(client)) ; 2729 } 2730 else if (element.type==TYPE_AXIS) 2731 { 2732 clientToServerConnectors.push_back(element.axis->getClientToServerConnector(client)) ; 2733 clientFromServerConnectors.push_back(element.axis->getClientFromServerConnector(client)) ; 2734 2735 } 2736 else if (element.type==TYPE_SCALAR) 2737 { 2738 clientToServerConnectors.push_back(element.scalar->getClientToServerConnector(client)) ; 2739 clientFromServerConnectors.push_back(element.scalar->getClientFromServerConnector(client)) ; 2701 2740 } 2702 2741 } … … 2707 2746 2708 2747 2748 } 2749 2750 void CGrid::recvMask(CEventServer& event) 2751 { 2752 string gridId; 2753 for (auto& subEvent : event.subEvents) (*subEvent.buffer) >> gridId ; 2754 get(gridId)->receiveMask(event); 2755 } 2756 2757 void CGrid::receiveMask(CEventServer& event) 2758 { 2759 vector<CGathererConnector*> gathererConnectors ; 2760 vector<CLocalView*> fullViews ; 2761 2762 for(auto& element : getElements()) 2763 { 2764 if (element.type==TYPE_DOMAIN) 2765 { 2766 gathererConnectors.push_back(element.domain->getGathererConnector()); 2767 fullViews.push_back(element.domain->getLocalElement()->getView(CElementView::FULL)); 2768 2769 } 2770 else if (element.type==TYPE_AXIS) 2771 { 2772 gathererConnectors.push_back(element.axis->getGathererConnector()); 2773 fullViews.push_back(element.axis->getLocalElement()->getView(CElementView::FULL)); 2774 } 2775 else if (element.type==TYPE_SCALAR) 2776 { 2777 gathererConnectors.push_back(element.scalar->getGathererConnector()); 2778 fullViews.push_back(element.scalar->getLocalElement()->getView(CElementView::FULL)); 2779 } 2780 } 2781 CGridGathererConnector gridGathererConnector(gathererConnectors) ; 2782 CGridMaskConnector gridMaskConnector(fullViews) ; 2783 2784 CArray<bool,1> maskOut ; 2785 gridGathererConnector.transfer(event,maskOut,false) ; 2786 gridMaskConnector.computeConnector(maskOut) ; 2787 2788 CContextClient* client = event.getContextServer()->getAssociatedClient() ; 2789 int i=0 ; 2790 for(auto& element : getElements()) 2791 { 2792 if (element.type==TYPE_DOMAIN) element.domain->setServerMask(gridMaskConnector.getElementMask(i),client); 2793 else if (element.type==TYPE_AXIS) element.axis->setServerMask(gridMaskConnector.getElementMask(i),client); 2794 else if (element.type==TYPE_SCALAR) element.scalar->setServerMask(gridMaskConnector.getElementMask(i),client); 2795 i++ ; 2796 } 2709 2797 } 2710 2798 -
XIOS/dev/dev_ym/XIOS_COUPLING/src/node/grid.hpp
r1934 r1943 75 75 enum EEventId 76 76 { 77 EVENT_ID_INDEX, EVENT_ID_ADD_DOMAIN, EVENT_ID_ADD_AXIS, EVENT_ID_ADD_SCALAR 77 EVENT_ID_INDEX, EVENT_ID_ADD_DOMAIN, EVENT_ID_ADD_AXIS, EVENT_ID_ADD_SCALAR, 78 EVENT_ID_SEND_MASK, 79 78 80 }; 79 81 … … 518 520 */ 519 521 // std::map<CContextClient*, CClientServerMapping::GlobalIndexMap> globalIndexOnServer_; 520 std::map<int, CClientServerMapping::GlobalIndexMap> globalIndexOnServer_; 521 522 522 std::map<int, CClientServerMapping::GlobalIndexMap> globalIndexOnServer_; 523 523 524 524 525 ////////////////////////////////////////////////////////////////////////////////////// 525 526 // this part is related to distribution, element definition, views and connectors // 526 527 ////////////////////////////////////////////////////////////////////////////////////// 527 528 private: 529 static void recvMask(CEventServer& event) ; 530 void receiveMask(CEventServer& event) ; 528 531 529 532 private: -
XIOS/dev/dev_ym/XIOS_COUPLING/src/node/scalar.cpp
r1940 r1943 313 313 CDistributedElement scatteredElement(1,globalIndex) ; 314 314 scatteredElement.addFullView() ; 315 CScattererConnector scattererConnector(localElement_->getView(CElementView::FULL), scatteredElement.getView(CElementView::FULL), context->getIntraComm()) ; 315 CScattererConnector scattererConnector(localElement_->getView(CElementView::FULL), scatteredElement.getView(CElementView::FULL), 316 context->getIntraComm(), client->getRemoteSize()) ; 316 317 scattererConnector.computeConnector() ; 317 318 … … 353 354 message2<<serverScalarId<<2 ; 354 355 clientToServerElement.sendToServer(client, event2, message2) ; 355 clientToServerConnector_[client] = new CScattererConnector(localElement_->getView(CElementView::WORKFLOW), 356 clientToServerElement.getView(CElementView::FULL), context->getIntraComm()) ;356 clientToServerConnector_[client] = new CScattererConnector(localElement_->getView(CElementView::WORKFLOW), clientToServerElement.getView(CElementView::FULL), 357 context->getIntraComm(), client->getRemoteSize()) ; 357 358 clientToServerConnector_[client]->computeConnector() ; 358 359 360 CEventClient event3(getType(), EVENT_ID_SCALAR_DISTRIBUTION);361 CMessage message3 ;362 message3<<serverScalarId<<3 ;363 clientToServerConnector_[client]->transfer(maskIn,client,event3,message3) ;364 359 365 360 clientFromServerConnector_[client] = new CGathererConnector(clientToServerElement.getView(CElementView::FULL), localElement_->getView(CElementView::WORKFLOW)); … … 407 402 gathererConnector_ -> computeConnector() ; 408 403 } 409 else if (phasis==3)410 {411 CArray<bool,1> localMask ;412 gathererConnector_->transfer(event,localMask,false) ;413 localElement_->addView(CElementView::WORKFLOW, localMask) ;414 mask = localMask(0) ;415 416 serverFromClientConnector_ = new CGathererConnector(elementFrom_->getView(CElementView::FULL), localElement_->getView(CElementView::WORKFLOW)) ;417 serverFromClientConnector_->computeConnector() ;418 419 serverToClientConnector_ = new CScattererConnector(localElement_->getView(CElementView::WORKFLOW), elementFrom_->getView(CElementView::FULL),420 context->getIntraComm()) ;421 serverToClientConnector_->computeConnector() ;422 423 }424 404 } 425 405 CATCH 406 407 void CScalar::setServerMask(CArray<bool,1>& serverMask, CContextClient* client) 408 TRY 409 { 410 CContext* context = CContext::getCurrent(); 411 localElement_->addView(CElementView::WORKFLOW, serverMask) ; 412 mask = serverMask(0) ; 413 414 serverFromClientConnector_ = new CGathererConnector(elementFrom_->getView(CElementView::FULL), localElement_->getView(CElementView::WORKFLOW)) ; 415 serverFromClientConnector_->computeConnector() ; 416 417 serverToClientConnector_ = new CScattererConnector(localElement_->getView(CElementView::WORKFLOW), elementFrom_->getView(CElementView::FULL), 418 context->getIntraComm(), client->getRemoteSize()) ; 419 serverToClientConnector_->computeConnector() ; 420 } 421 CATCH_DUMP_ATTR 426 422 427 423 void CScalar::sendDistributedAttributes(CContextClient* client, CScattererConnector& scattererConnector, const string& scalarId) -
XIOS/dev/dev_ym/XIOS_COUPLING/src/node/scalar.hpp
r1940 r1943 178 178 static void recvScalarDistribution(CEventServer& event) ; 179 179 void receivedScalarDistribution(CEventServer& event, int phasis) ; 180 void setServerMask(CArray<bool,1>& serverMask, CContextClient* client) ; 180 181 void sendDistributedAttributes(CContextClient* client, CScattererConnector& scattererConnector, const string& scalarId) ; 181 182 static void recvDistributedAttributes(CEventServer& event) ; … … 193 194 private: 194 195 CGathererConnector* gathererConnector_ ; 196 public: 197 CGathererConnector* getGathererConnector(void) { return gathererConnector_ ;} 198 private: 195 199 CGathererConnector* serverFromClientConnector_ ; 196 200 CDistributedElement* elementFrom_ ;
Note: See TracChangeset
for help on using the changeset viewer.