Ignore:
Timestamp:
06/29/22 18:19:45 (2 years ago)
Author:
ymipsl
Message:
  • Implement new infrastructure for transfert protocol.
  • new purelly one sided protocol is now available, the previous protocol (legacy, mix send/recv and one sided) is still available. Other specific protocol could be implemented more easilly in future.
  • switch can be operate with "transport_protocol" variable in XIOS context :

ex:
<variable id="transport_protocol" type="string">one_sided</variable>

Available protocols are : one_sided, legacy or default. The default protocol is "legacy".

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/event_server.cpp

    r716 r2343  
    3535    ev.buffer = new CBufferIn(buffer.ptr(), buffer.remain()); 
    3636    ev.size = size;   
     37    ev.startBuffer = startBuffer ; // for one sided, take ownership of buffer for now 
    3738    subEvents.push_back(ev); 
    3839   
     
    4445    } 
    4546  } 
     47 
    4648 
    4749  bool CEventServer::isFull(void)   
     
    5557    for (it = subEvents.begin(); it != subEvents.end(); it++) 
    5658    { 
    57       it->serverBuffer->freeBuffer(it->size); 
    58       delete it->buffer; 
     59      if (it->serverBuffer==nullptr) // one_sided case 
     60      { 
     61        delete [] it->startBuffer ; 
     62        delete it->buffer; 
     63      } 
     64      else // legacy case 
     65      { 
     66        it->serverBuffer->freeBuffer(it->size); 
     67        delete it->buffer; 
     68      } 
    5969    } 
    6070  } 
Note: See TracChangeset for help on using the changeset viewer.