source: XMLIO_V2/dev/common/src/context_server.hpp @ 300

Last change on this file since 300 was 300, checked in by ymipsl, 9 years ago

nouvelle version de developpement de xios

  • nouvelle interface fortran
  • recodage complet de la couche de communication
  • et bien d'autres choses...

YM

File size: 1.1 KB
Line 
1#ifndef __CONTEXT_SERVER_HPP__
2#define __CONTEXT_CLIENT_HPP__
3#include "xmlioserver_spl.hpp"
4#include "event_server.hpp"
5#include "buffer_server.hpp"
6#include <mpi.h>
7
8namespace xmlioserver
9{
10  namespace tree
11  {
12    class CContext ;
13  }
14 
15  class CContextServer
16  {
17    public:
18   
19    CContextServer(tree::CContext* parent,MPI_Comm intraComm,MPI_Comm interComm) ;
20    bool eventLoop(void) ;
21    void listen(void) ;
22    void checkPendingRequest(void) ;
23    void processRequest(int rank, char* buff,int count) ;
24    void processEvents(void) ;
25    void dispatchEvent(CEventServer& event) ;
26    void setPendingEvent(void) ;
27    bool hasPendingEvent(void) ;
28   
29    MPI_Comm intraComm ;
30    int intraCommSize ;
31    int intraCommRank ;
32   
33    MPI_Comm interComm ;
34    int commSize ;
35 
36    map<int,CServerBuffer*> buffers ;
37    map<int,MPI_Request> pendingRequest ;
38    map<int,char*> bufferRequest ;
39   
40    map<size_t,CEventServer*> events ;
41    size_t currentTimeLine ;
42    tree::CContext* context ;
43   
44    bool finished ;
45    bool pendingEvent ;
46    ~CContextServer() ;   
47  } ;
48
49}
50
51#endif
Note: See TracBrowser for help on using the repository browser.