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