source: XIOS/trunk/src/distribution_server.hpp @ 829

Last change on this file since 829 was 676, checked in by rlacroix, 9 years ago

Add support for indexed output.

If the new field attribute "indexed_output" is set to true and a mask is defined (either at grid, domain or axis level), the indexed data will be outputed instead of the full data with missing values.

See http://cfconventions.org/Data/cf-conventions/cf-conventions-1.5/build/cf-conventions.html#compression-by-gathering for more information.

File size: 1.7 KB
RevLine 
[553]1/*!
2   \file distribution_server.hpp
3   \author Ha NGUYEN
4   \since 13 Jan 2015
5   \date 04 Feb 2015
6
7   \brief Index distribution on server side.
8 */
9
[551]10#ifndef __XIOS_DISTRIBUTION_SERVER_HPP__
11#define __XIOS_DISTRIBUTION_SERVER_HPP__
12
13#include "distribution.hpp"
14
15namespace xios {
[553]16
[552]17/*!
[553]18  \class CDistributionServer
19  The class, for now, plays a role of computing local index for writing data on server
[552]20*/
[551]21class CDistributionServer : public CDistribution
22{
23  public:
24    /** Default constructor */
[653]25    CDistributionServer(int rank, int dims, const CArray<size_t,1>& globalIndex = CArray<size_t,1>());
[567]26    CDistributionServer(int rank, const std::vector<int>& nZoomBeginServer,
27                        const std::vector<int>& nZoomSizeServer, const std::vector<int>& nGlobal);
28    CDistributionServer(int rank, const std::vector<int>& nZoomBeginServer,
29                        const std::vector<int>& nZoomSizeServer,
30                        const std::vector<int>& nZoomBeginGlobal,
31                        const std::vector<int>& nGlobal);
[551]32
33    /** Default destructor */
34    virtual ~CDistributionServer();
35
[676]36    const std::vector<int>& getZoomBeginGlobal() const;
37    const std::vector<int>& getZoomBeginServer() const;
38    const std::vector<int>& getZoomSizeServer() const;
[567]39
[554]40    virtual CArray<size_t,1> computeLocalIndex(const CArray<size_t,1>& globalIndex);
41    virtual void computeLocalIndex(CArray<size_t,1>& globalIndex);
[676]42    virtual void computeGlobalIndex(CArray<int,1>& indexes) const;
[552]43
[551]44  protected:
45    virtual void createGlobalIndex();
46  private:
47    std::vector<int> nGlobal_;
[567]48    std::vector<int> nZoomBeginGlobal_;
[552]49    std::vector<int> nZoomSize_;
50    std::vector<int> nZoomBegin_;
[567]51
[551]52};
53
[552]54} // namespace xios
[551]55#endif // __XIOS_DISTRIBUTION_SERVER_HPP__
Note: See TracBrowser for help on using the repository browser.