atlas
Checksum.h
1 /*
2  * (C) Copyright 2020 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
8  * nor does it submit to any jurisdiction.
9  */
10 
11 #pragma once
12 
13 #include <cstdint>
14 #include <string>
15 
16 namespace atlas {
17 namespace io {
18 
19 class Checksum {
20 public:
21  Checksum() = default;
22  Checksum( const std::string& checksum );
23  bool available() const;
24  std::string str() const;
25  std::string str( size_t size ) const;
26  std::string algorithm() const { return algorithm_; }
27 
28 private:
29  std::string algorithm_;
30  std::string checksum_;
31 };
32 
33 std::string checksum( const void* buffer, size_t size, const std::string& algorithm = "" );
34 
35 
36 } // namespace io
37 } // namespace atlas
Definition: Checksum.h:19
Contains all atlas classes and methods.
Definition: atlas-grids.cc:33