- Timestamp:
- 09/03/15 09:20:45 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/event_server.cpp
r591 r682 7 7 namespace xios 8 8 { 9 10 void CEventServer::push(int rank,CServerBuffer* serverBuffer,char* startBuffer,int size) 9 void CEventServer::push(int rank, CServerBuffer* serverBuffer, char* startBuffer, int size) 11 10 { 12 CBufferIn buffer(startBuffer,size) ; 13 size_t timeLine ; 14 int myClassId ; 15 int myType ; 16 int myNbSender ; 11 CBufferIn buffer(startBuffer, size); 12 size_t timeLine; 13 int myClassId, myType, myNbSender; 17 14 18 buffer >>size>>timeLine>>myNbSender>>myClassId>>myType;15 buffer >> size >> timeLine >> myNbSender >> myClassId >> myType; 19 16 20 17 if (subEvents.empty()) 21 18 { 22 nbSender =myNbSender;23 classId =myClassId;24 type =myType;19 nbSender = myNbSender; 20 classId = myClassId; 21 type = myType; 25 22 } 26 23 else 27 24 { 28 if (nbSender!=myNbSender || classId!=myClassId || type!=myType) 29 ERROR("void CEventServer::push(int rank,char* startBuffer,int size)", 30 "Callers of an event are not coherent") ; 25 if (classId != myClassId || type != myType || nbSender != myNbSender) 26 ERROR("void CEventServer::push(int rank, CServerBuffer* serverBuffer, char* startBuffer, int size)", 27 << "The callers of event " << timeLine << " are not coherent." << std::endl 28 << "Received subevent: classId = " << myClassId << ", type = " << myType << ", nbSender = " << myNbSender << std::endl 29 << "Excepted subevent: classId = " << classId << ", type = " << type << ", nbSender = " << nbSender); 31 30 } 32 31 33 SSubEvent ev 34 ev.rank =rank;35 ev.serverBuffer =serverBuffer;36 ev.buffer =new CBufferIn(buffer.ptr(),buffer.remain());37 ev.size =size;38 subEvents.push_back(ev) 32 SSubEvent ev; 33 ev.rank = rank; 34 ev.serverBuffer = serverBuffer; 35 ev.buffer = new CBufferIn(buffer.ptr(), buffer.remain()); 36 ev.size = size; 37 subEvents.push_back(ev); 39 38 40 if (subEvents.size() >nbSender)39 if (subEvents.size() > nbSender) 41 40 { 42 ERROR("void CEventServer::push(int rank,CServerBuffer* serverBuffer,char* startBuffer,int size)", 43 "Callers of an event are not coherent") ; 41 ERROR("void CEventServer::push(int rank, CServerBuffer* serverBuffer, char* startBuffer, int size)", 42 << "The callers of event " << timeLine << " are not coherent." << std::endl 43 << "Too many subevents have been received (" << subEvents.size() << " instead of " << nbSender << ")."); 44 44 } 45 46 45 } 47 46 48 47 bool CEventServer::isFull(void) 49 48 { 50 return (nbSender ==subEvents.size());49 return (nbSender == subEvents.size()); 51 50 } 52 51 … … 54 53 { 55 54 list<SSubEvent>::iterator it; 56 57 for(it=subEvents.begin();it!=subEvents.end();it++) 55 for (it = subEvents.begin(); it != subEvents.end(); it++) 58 56 { 59 it->serverBuffer->freeBuffer(it->size) 60 delete it->buffer 57 it->serverBuffer->freeBuffer(it->size); 58 delete it->buffer; 61 59 } 62 60 } 63 64 61 }
Note: See TracChangeset
for help on using the changeset viewer.