IODA Bundle
DecodeTarget.cc
Go to the documentation of this file.
1 /*
2  * (C) Copyright 1996-2018 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 #include "odc/core/DecodeTarget.h"
12 
13 
14 namespace odc {
15 namespace core {
16 
17 //----------------------------------------------------------------------------------------------------------------------
18 
19 DecodeTarget::DecodeTarget(const std::vector<std::string>& columns,
20  const std::vector<api::StridedData>& facades) :
21  columns_(columns),
22  columnFacades_(facades) {}
23 
24 DecodeTarget::DecodeTarget(const std::vector<std::string>& columns,
25  std::vector<api::StridedData>&& facades) :
26  columns_(columns),
27  columnFacades_(std::move(facades)) {}
28 
30 
31 const std::vector<std::string>&DecodeTarget::columns() const {
32  return columns_;
33 }
34 
35 std::vector<api::StridedData>& DecodeTarget::dataFacades() {
36  return columnFacades_;
37 }
38 
39 DecodeTarget DecodeTarget::slice(size_t rowOffset, size_t nrows) {
40 
41  std::vector<api::StridedData> newFacades;
42  newFacades.reserve(columnFacades_.size());
43  for (auto& facade : columnFacades_) {
44  newFacades.emplace_back(facade.slice(rowOffset, nrows));
45  }
46 
47  return DecodeTarget(columns_, std::move(newFacades));
48 }
49 
50 //----------------------------------------------------------------------------------------------------------------------
51 
52 } // namespace core
53 } // namespace odc
54 
std::vector< std::string > columns_
Definition: DecodeTarget.h:45
const std::vector< std::string > & columns() const
Definition: DecodeTarget.cc:31
DecodeTarget slice(size_t rowOffset, size_t nrows)
Definition: DecodeTarget.cc:39
std::vector< api::StridedData > columnFacades_
Definition: DecodeTarget.h:46
std::vector< api::StridedData > & dataFacades()
Definition: DecodeTarget.cc:35
DecodeTarget(const std::vector< std::string > &columns, const std::vector< api::StridedData > &facades)
Definition: DecodeTarget.cc:19
Definition: ColumnInfo.h:23
Definition: encode.cc:30