Aktualizr
C++ SOTA Client
hash.h
1 #ifndef OPCUABRIDGE_HASH_H_
2 #define OPCUABRIDGE_HASH_H_
3 
4 #include "common.h"
5 
6 namespace opcuabridge {
7 class Hash {
8  public:
9  Hash() = default;
10  virtual ~Hash() = default;
11 
12  const HashFunction& getFunction() const { return function_; }
13  void setFunction(const HashFunction& function) { function_ = function; }
14  const std::string& getDigest() const { return digest_; }
15  void setDigest(const std::string& digest) { digest_ = digest; }
16 
17  Json::Value wrapMessage() const {
18  Json::Value v;
19  v["function"] = getFunction();
20  v["digest"] = getDigest();
21  return v;
22  }
23  void unwrapMessage(Json::Value v) {
24  setFunction(static_cast<HashFunction>(v["function"].asInt()));
25  setDigest(v["digest"].asString());
26  }
27 
28  protected:
29  HashFunction function_{};
30  std::string digest_;
31 
32  private:
33 #ifdef OPCUABRIDGE_ENABLE_SERIALIZATION
34  SERIALIZE_FUNCTION_FRIEND_DECLARATION
35 
36  DEFINE_SERIALIZE_METHOD() {
37  SERIALIZE_FIELD(ar, "function_", function_);
38  SERIALIZE_FIELD(ar, "digest_", digest_);
39  }
40 #endif // OPCUABRIDGE_ENABLE_SERIALIZATION
41 };
42 } // namespace opcuabridge
43 
44 #endif // OPCUABRIDGE_HASH_H_