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