source: XIOS/trunk/src/event_server.cpp @ 631

Last change on this file since 631 was 591, checked in by rlacroix, 9 years ago

Remove leftovers from the XMLIO age.

  • Property copyright set to
    Software name : XIOS (Xml I/O Server)
    http://forge.ipsl.jussieu.fr/ioserver
    Creation date : January 2009
    Licence : CeCCIL version2
    see license file in root directory : Licence_CeCILL_V2-en.txt
    or http://www.cecill.info/licences/Licence_CeCILL_V2-en.html
    Holder : CEA/LSCE (Laboratoire des Sciences du CLimat et de l'Environnement)
    CNRS/IPSL (Institut Pierre Simon Laplace)
    Project Manager : Yann Meurdesoif
    yann.meurdesoif@cea.fr
  • Property svn:eol-style set to native
File size: 1.4 KB
Line 
1#include "xios_spl.hpp"
2#include "buffer_in.hpp"
3#include "type.hpp"
4#include "event_server.hpp"
5#include "buffer_server.hpp"
6
7namespace xios
8{
9
10  void CEventServer::push(int rank,CServerBuffer* serverBuffer,char* startBuffer,int size)
11  {
12    CBufferIn buffer(startBuffer,size) ;
13    size_t timeLine ;
14    int myClassId ;
15    int myType ;
16    int myNbSender ;
17 
18    buffer>>size>>timeLine>>myNbSender>>myClassId>>myType ;
19 
20    if (subEvents.empty())
21    { 
22      nbSender=myNbSender ;
23      classId=myClassId;
24      type=myType ;
25    }
26    else
27    {
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") ;
31    }
32
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) ;
39 
40    if (subEvents.size()>nbSender)
41    {
42        ERROR("void CEventServer::push(int rank,CServerBuffer* serverBuffer,char* startBuffer,int size)",
43              "Callers of an event are not coherent") ;
44    }
45 
46  }
47
48  bool CEventServer::isFull(void) 
49  {
50    return (nbSender==subEvents.size()) ;
51  }
52
53  CEventServer::~CEventServer()
54  {
55    list<SSubEvent>::iterator it;
56
57    for(it=subEvents.begin();it!=subEvents.end();it++)
58    {
59      it->serverBuffer->freeBuffer(it->size) ;
60      delete it->buffer ;
61    }
62  }
63
64}
Note: See TracBrowser for help on using the repository browser.