IODA Bundle
Export.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2020 NOAA/NWS/NCEP/EMC
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 #pragma once
9 
10 #include <memory>
11 #include <map>
12 #include <vector>
13 
14 #include "eckit/config/LocalConfiguration.h"
15 
16 #include "Filters/Filter.h"
17 #include "Splits/Split.h"
18 #include "Variables/Variable.h"
19 
20 
21 namespace Ingester
22 {
23  /// \brief Uses configuration to determine all the things needed to be done on export.
24  class Export
25  {
26  public:
27  typedef std::map<std::string, std::shared_ptr<Split>> Splits;
28  typedef std::map<std::string, std::shared_ptr<Variable>> Variables;
29  typedef std::vector<std::shared_ptr<Filter>> Filters;
30 
31  /// \brief Constructor
32  /// \param conf Config data/
33  explicit Export(const eckit::Configuration &conf);
34 
35  // Getters
36  inline Splits getSplits() const { return splits_; }
37  inline Variables getVariables() const { return variables_; }
38  inline Filters getFilters() const { return filters_; }
39 
40  private:
44 
45  /// \brief Create Variables exports from config.
46  void addVariables(const eckit::Configuration &conf);
47 
48  /// \brief Create Splits exports from config.
49  void addSplits(const eckit::Configuration &conf);
50 
51  /// \brief Create Filters exports from config.
52  void addFilters(const eckit::Configuration &conf);
53  };
54 } // namespace Ingester
Uses configuration to determine all the things needed to be done on export.
Definition: Export.h:25
void addVariables(const eckit::Configuration &conf)
Create Variables exports from config.
Definition: Export.cpp:79
Filters filters_
Definition: Export.h:43
std::map< std::string, std::shared_ptr< Variable > > Variables
Definition: Export.h:28
Splits splits_
Definition: Export.h:41
Variables getVariables() const
Definition: Export.h:37
void addSplits(const eckit::Configuration &conf)
Create Splits exports from config.
Definition: Export.cpp:115
std::vector< std::shared_ptr< Filter > > Filters
Definition: Export.h:29
Variables variables_
Definition: Export.h:42
Splits getSplits() const
Definition: Export.h:36
Export(const eckit::Configuration &conf)
Constructor.
Definition: Export.cpp:57
void addFilters(const eckit::Configuration &conf)
Create Filters exports from config.
Definition: Export.cpp:160
std::map< std::string, std::shared_ptr< Split > > Splits
Definition: Export.h:27
Filters getFilters() const
Definition: Export.h:38