XIOS  1.0
Xml I/O Server
 Tout Classes Espaces de nommage Fichiers Fonctions Variables Définitions de type Énumérations Valeurs énumérées Amis Macros
distribution_server.hpp
Aller à la documentation de ce fichier.
1 
10 #ifndef __XIOS_DISTRIBUTION_SERVER_HPP__
11 #define __XIOS_DISTRIBUTION_SERVER_HPP__
12 
13 #include "distribution.hpp"
14 
15 namespace xios {
16 
22 {
23  public:
25  CDistributionServer(int rank, int dims, const CArray<size_t,1>& globalIndex = CArray<size_t,1>());
26  CDistributionServer(int rank, const std::vector<int>& nBeginServer,
27  const std::vector<int>& nSizeServer, const std::vector<int>& nGlobal);
28  CDistributionServer(int rank, const std::vector<int>& nBeginServer,
29  const std::vector<int>& nSizeServer,
30  const std::vector<int>& nBeginGlobal,
31  const std::vector<int>& nGlobal);
32 
33  CDistributionServer(int rank,
34  const std::vector<CArray<int,1> >& globalIndexElements,
35  const CArray<int,1>& elementOrder,
36  const std::vector<int>& nBeginServer,
37  const std::vector<int>& nSizeServer,
38  const std::vector<int>& nBeginGlobal,
39  const std::vector<int>& nGlobal);
40 
42  virtual ~CDistributionServer();
43 
45  int getGridSize() const;
46 
47  virtual void computeLocalIndex(CArray<size_t,1>& globalIndex);
48  virtual void computeGlobalIndex(CArray<int,1>& indexes) const;
49  virtual void partialClear(void);
50 
51  protected:
52  virtual void createGlobalIndex();
53  void createGlobalIndex(const std::vector<CArray<int,1> >& globalIndexElements,
54  const CArray<int,1>& elementOrder);
55 
56  protected:
58 
59  private:
60  std::vector<int> nGlobal_;
61  std::vector<int> nBeginGlobal_;
62  std::vector<int> nSize_;
63  std::vector<int> nBegin_;
64 
65 };
66 
67 } // namespace xios
68 #endif // __XIOS_DISTRIBUTION_SERVER_HPP__
virtual void computeLocalIndex(CArray< size_t, 1 > &globalIndex)
Compute local index for writing data on server.
const GlobalLocalMap & getGlobalLocalIndex() const
The parent class of CDistributionClient and CDistributionServer, which declares and defines some basi...
int getGridSize() const
Get the size of grid index in server (e.x: sizeGrid *= size of each dimensiion)
virtual void createGlobalIndex()
clear heavy sized attibutes
#define xios(arg)
CDistributionServer(int rank, int dims, const CArray< size_t, 1 > &globalIndex=CArray< size_t, 1 >())
std::vector< int > nBeginGlobal_
Index distribution on server side.
std::unordered_map< size_t, int > GlobalLocalMap
virtual void computeGlobalIndex(CArray< int, 1 > &indexes) const
Transforms local indexes owned by the server into global indexes.
The class, for now, plays a role of computing local index for writing data on server.