IODA Bundle
Indexer.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 1996-2012 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 /// @author Piotr Kuchta, ECMWF, November 2015
12 
13 #ifndef odc_Indexer_H
14 #define odc_Indexer_H
15 
16 #include <vector>
17 
18 #include "eckit/filesystem/PathName.h"
19 
20 namespace odc {
21 
22 typedef std::vector<std::pair<eckit::Offset,eckit::Length> > BlockOffsets;
23 typedef unsigned long long ullong;
24 
25 class Indexer {
26 public:
27  static void createIndex(const eckit::PathName&, const eckit::PathName&);
28  static std::vector<eckit::PathName> createIndex(const std::vector<eckit::PathName>&);
29 
30  static ullong countRows(const std::vector<eckit::PathName>&, const std::vector<eckit::PathName>&);
31 
32 private:
33  static BlockOffsets offsetsOfBlocks(const eckit::PathName&);
34 };
35 
36 } // namespace odc
37 
38 #endif
static std::vector< eckit::PathName > createIndex(const std::vector< eckit::PathName > &)
static void createIndex(const eckit::PathName &, const eckit::PathName &)
static ullong countRows(const std::vector< eckit::PathName > &, const std::vector< eckit::PathName > &)
static BlockOffsets offsetsOfBlocks(const eckit::PathName &)
Definition: Indexer.cc:31
Definition: ColumnInfo.h:23
unsigned long long ullong
Definition: Block.h:27
std::vector< std::pair< eckit::Offset, eckit::Length > > BlockOffsets
Definition: Indexer.h:22