xref: /freebsd-src/contrib/llvm-project/lldb/include/lldb/Utility/Checksum.h (revision 5f757f3ff9144b609b3c433dfd370cc6bdc191ad)
1*5f757f3fSDimitry Andric //===-- Checksum.h ----------------------------------------------*- C++ -*-===//
2*5f757f3fSDimitry Andric //
3*5f757f3fSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*5f757f3fSDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
5*5f757f3fSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*5f757f3fSDimitry Andric //
7*5f757f3fSDimitry Andric //===----------------------------------------------------------------------===//
8*5f757f3fSDimitry Andric 
9*5f757f3fSDimitry Andric #ifndef LLDB_UTILITY_CHECKSUM_H
10*5f757f3fSDimitry Andric #define LLDB_UTILITY_CHECKSUM_H
11*5f757f3fSDimitry Andric 
12*5f757f3fSDimitry Andric #include "llvm/Support/MD5.h"
13*5f757f3fSDimitry Andric 
14*5f757f3fSDimitry Andric namespace lldb_private {
15*5f757f3fSDimitry Andric class Checksum {
16*5f757f3fSDimitry Andric public:
17*5f757f3fSDimitry Andric   static llvm::MD5::MD5Result g_sentinel;
18*5f757f3fSDimitry Andric 
19*5f757f3fSDimitry Andric   Checksum(llvm::MD5::MD5Result md5 = g_sentinel);
20*5f757f3fSDimitry Andric   Checksum(const Checksum &checksum);
21*5f757f3fSDimitry Andric   Checksum &operator=(const Checksum &checksum);
22*5f757f3fSDimitry Andric 
23*5f757f3fSDimitry Andric   explicit operator bool() const;
24*5f757f3fSDimitry Andric   bool operator==(const Checksum &checksum) const;
25*5f757f3fSDimitry Andric   bool operator!=(const Checksum &checksum) const;
26*5f757f3fSDimitry Andric 
27*5f757f3fSDimitry Andric   std::string digest() const;
28*5f757f3fSDimitry Andric 
29*5f757f3fSDimitry Andric private:
30*5f757f3fSDimitry Andric   void SetMD5(llvm::MD5::MD5Result);
31*5f757f3fSDimitry Andric 
32*5f757f3fSDimitry Andric   llvm::MD5::MD5Result m_checksum;
33*5f757f3fSDimitry Andric };
34*5f757f3fSDimitry Andric } // namespace lldb_private
35*5f757f3fSDimitry Andric 
36*5f757f3fSDimitry Andric #endif // LLDB_UTILITY_CHECKSUM_H
37