UFO
Variable.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2019 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 UFO_FILTERS_VARIABLE_H_
9 #define UFO_FILTERS_VARIABLE_H_
10 
11 #include <ostream>
12 #include <string>
13 #include <vector>
14 
15 #include "eckit/config/LocalConfiguration.h"
16 #include "oops/base/Variables.h"
17 #include "oops/util/Printable.h"
18 
19 namespace ufo {
20 
21 // -----------------------------------------------------------------------------
22 
23 class Variable: public util::Printable {
24  public:
25  static const std::string classname() {return "ufo::Variable";}
26 
27  explicit Variable(const eckit::Configuration &);
28  explicit Variable(const std::string &,
29  const eckit::LocalConfiguration conf = eckit::LocalConfiguration());
30  Variable(const std::string &, const std::vector<int> &);
31  Variable(const Variable &, const std::string &);
32  ~Variable();
33 
34  size_t size() const;
35  Variable operator[](const size_t) const;
36  const std::string & variable() const;
37  std::string variable(const size_t) const;
38  const std::string & group() const;
39  const std::vector<int> & channels() const;
40 
41  oops::Variables toOopsVariables() const;
42 
43  const eckit::LocalConfiguration & options() const {return options_;}
44 
45  private:
46  void print(std::ostream &) const;
47  std::string varname_;
48  std::string grpname_;
49  std::vector<int> channels_;
50  eckit::LocalConfiguration options_;
51 };
52 
53 // -----------------------------------------------------------------------------
54 
55 } // namespace ufo
56 
57 #endif // UFO_FILTERS_VARIABLE_H_
ufo::Variable::channels
const std::vector< int > & channels() const
Definition: Variable.cc:123
ufo::Variable::print
void print(std::ostream &) const
Definition: Variable.cc:140
ufo::Variable::channels_
std::vector< int > channels_
Definition: Variable.h:49
ufo::Variable::size
size_t size() const
Definition: Variable.cc:79
ufo::Variable::toOopsVariables
oops::Variables toOopsVariables() const
Definition: Variable.cc:129
ufo::Variable::options_
eckit::LocalConfiguration options_
Definition: Variable.h:50
ufo::Variable::options
const eckit::LocalConfiguration & options() const
Definition: Variable.h:43
ufo
Definition: RunCRTM.h:27
ufo::Variable::grpname_
std::string grpname_
Definition: Variable.h:48
ufo::Variable::~Variable
~Variable()
Definition: Variable.cc:74
ufo::Variable::varname_
std::string varname_
Definition: Variable.h:47
ufo::Variable::group
const std::string & group() const
Definition: Variable.cc:117
ufo::Variable::variable
const std::string & variable() const
Definition: Variable.cc:100
ufo::Variable::operator[]
Variable operator[](const size_t) const
Definition: Variable.cc:89
ufo::Variable::classname
static const std::string classname()
Definition: Variable.h:25
ufo::Variable
Definition: Variable.h:23
conf
Definition: conf.py:1
ufo::Variable::Variable
Variable(const eckit::Configuration &)
Definition: Variable.cc:31