source:
XIOS/dev/XIOS_DEV_CMIP6/src/context_server.hpp
@
2021
Last change on this file since 2021 was 1228, checked in by oabramkina, 7 years ago | |
---|---|
|
|
File size: 1.3 KB |
Rev | Line | |
---|---|---|
[300] | 1 | #ifndef __CONTEXT_SERVER_HPP__ |
[327] | 2 | #define __CONTEXT_SERVER_HPP__ |
[591] | 3 | #include "xios_spl.hpp" |
[300] | 4 | #include "event_server.hpp" |
5 | #include "buffer_server.hpp" | |
[382] | 6 | #include "mpi.hpp" |
[300] | 7 | |
[335] | 8 | namespace xios |
[300] | 9 | { |
[345] | 10 | class CContext ; |
[511] | 11 | |
[300] | 12 | class CContextServer |
13 | { | |
14 | public: | |
[511] | 15 | |
[1158] | 16 | CContextServer(CContext* parent,MPI_Comm intraComm,MPI_Comm interComm) ; |
[1054] | 17 | bool eventLoop(bool enableEventsProcessing = true); |
[300] | 18 | void listen(void) ; |
[1228] | 19 | bool listenPendingRequest(MPI_Status& status) ; |
[300] | 20 | void checkPendingRequest(void) ; |
[1158] | 21 | void processRequest(int rank, char* buff,int count) ; |
[300] | 22 | void processEvents(void) ; |
[1054] | 23 | bool hasFinished(void); |
[300] | 24 | void dispatchEvent(CEventServer& event) ; |
25 | void setPendingEvent(void) ; | |
26 | bool hasPendingEvent(void) ; | |
[511] | 27 | |
[300] | 28 | MPI_Comm intraComm ; |
29 | int intraCommSize ; | |
30 | int intraCommRank ; | |
[511] | 31 | |
[300] | 32 | MPI_Comm interComm ; |
33 | int commSize ; | |
[511] | 34 | |
[300] | 35 | map<int,CServerBuffer*> buffers ; |
36 | map<int,MPI_Request> pendingRequest ; | |
37 | map<int,char*> bufferRequest ; | |
[511] | 38 | |
[300] | 39 | map<size_t,CEventServer*> events ; |
40 | size_t currentTimeLine ; | |
[345] | 41 | CContext* context ; |
[697] | 42 | |
[300] | 43 | bool finished ; |
44 | bool pendingEvent ; | |
[492] | 45 | bool scheduled ; /*!< event of current timeline is alreading scheduled ? */ |
46 | size_t hashId ; | |
[1054] | 47 | |
[511] | 48 | ~CContextServer() ; |
49 | ||
50 | private: | |
[1158] | 51 | std::map<int, StdSize> mapBufferSize_; |
[300] | 52 | } ; |
53 | ||
54 | } | |
55 | ||
56 | #endif |
Note: See TracBrowser
for help on using the repository browser.