IODA Bundle
ObsSpaceBase.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2009-2016 ECMWF.
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  * In applying this licence, ECMWF does not waive the privileges and immunities
7  * granted to it by virtue of its status as an intergovernmental organisation nor
8  * does it submit to any jurisdiction.
9  */
10 
11 #ifndef OOPS_BASE_OBSSPACEBASE_H_
12 #define OOPS_BASE_OBSSPACEBASE_H_
13 
14 #include <boost/noncopyable.hpp>
15 
16 #include "eckit/mpi/Comm.h"
17 
18 #include "oops/util/DateTime.h"
19 #include "oops/util/Printable.h"
20 
21 namespace eckit {
22  class Configuration;
23 }
24 
25 namespace oops {
26 
27 // -----------------------------------------------------------------------------
28 /// Base class for observation spaces.
29 
30 class ObsSpaceBase : public util::Printable,
31  private boost::noncopyable {
32  public:
33  ObsSpaceBase(const eckit::Configuration &, const eckit::mpi::Comm &,
34  const util::DateTime &, const util::DateTime &);
35 
36  virtual ~ObsSpaceBase() {}
37 
38 /// Access information
39  const util::DateTime & windowStart() const {return winbgn_;}
40  const util::DateTime & windowEnd() const {return winend_;}
41 
42  int64_t getSeed() const {return seed_;}
43 
44  private:
45  static int instances_;
46 
47  const util::DateTime winbgn_;
48  const util::DateTime winend_;
49  int64_t seed_;
50  const int instance_;
51 };
52 
53 // -----------------------------------------------------------------------------
54 
55 } // namespace oops
56 
57 #endif // OOPS_BASE_OBSSPACEBASE_H_
Base class for observation spaces.
Definition: ObsSpaceBase.h:31
int64_t getSeed() const
Definition: ObsSpaceBase.h:42
const util::DateTime winend_
Definition: ObsSpaceBase.h:48
virtual ~ObsSpaceBase()
Definition: ObsSpaceBase.h:36
static int instances_
Definition: ObsSpaceBase.h:45
const util::DateTime & windowStart() const
Access information.
Definition: ObsSpaceBase.h:39
const int instance_
Definition: ObsSpaceBase.h:50
ObsSpaceBase(const eckit::Configuration &, const eckit::mpi::Comm &, const util::DateTime &, const util::DateTime &)
Definition: ObsSpaceBase.cc:23
const util::DateTime winbgn_
Definition: ObsSpaceBase.h:47
const util::DateTime & windowEnd() const
Definition: ObsSpaceBase.h:40
The namespace for the main oops code.