IODA
DistributionFactory.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2017 UCAR
3  *
4  * This software is licensed under the terms of the Apache Licence Version 2.0
5  * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
6  */
7 
8 #ifndef DISTRIBUTION_DISTRIBUTIONFACTORY_H_
9 #define DISTRIBUTION_DISTRIBUTIONFACTORY_H_
10 
11 #include <string>
12 #include <vector>
13 
14 #include "ioda/distribution/Distribution.h"
15 
16 namespace ioda {
17 
18 // ---------------------------------------------------------------------
19 /*!
20  * \brief Factory class to instantiate objects of Distribution subclasses
21  *
22  * \details This class provides a create method to instantiate a Distribution object
23  * containing a method for a particular manner in which to distribute obs
24  * across multiple process elements.
25  *
26  * \author Xin Zhang (JCSDA)
27  */
29  public:
30  Distribution * createDistribution(const eckit::mpi::Comm & Comm,
31  const std::string & Method);
32 };
33 
34 // ---------------------------------------------------------------------
35 
36 } // namespace ioda
37 
38 #endif // DISTRIBUTION_DISTRIBUTIONFACTORY_H_
ioda::Distribution
class for distributing obs across multiple process elements
Definition: src/distribution/Distribution.h:30
ioda::DistributionFactory::createDistribution
Distribution * createDistribution(const eckit::mpi::Comm &Comm, const std::string &Method)
create a Distribution object
Definition: DistributionFactory.cc:26
ioda
Definition: IodaUtils.cc:13
ioda::DistributionFactory
Factory class to instantiate objects of Distribution subclasses.
Definition: DistributionFactory.h:28