1f8da32adSTom Joseph #pragma once
2f8da32adSTom Joseph 
3f8da32adSTom Joseph #include "comm_module.hpp"
4f8da32adSTom Joseph 
59e801a2bSVernon Mauery #include <sdbusplus/bus/match.hpp>
6bc8958feSGeorge Liu 
7bc8958feSGeorge Liu #include <cstddef>
89e801a2bSVernon Mauery #include <vector>
99e801a2bSVernon Mauery 
10f8da32adSTom Joseph namespace command
11f8da32adSTom Joseph {
12f8da32adSTom Joseph 
13f8da32adSTom Joseph constexpr size_t BMC_GUID_LEN = 16;
14f8da32adSTom Joseph 
1583029cb8STom Joseph using Guid = std::array<uint8_t, BMC_GUID_LEN>;
1683029cb8STom Joseph 
173563f8feSTom Joseph /**
18f8da32adSTom Joseph  * @brief Get System GUID
19f8da32adSTom Joseph  *
20f8da32adSTom Joseph  * @return If UUID is successfully read from the Chassis DBUS object, then the
21f8da32adSTom Joseph  *         GUID is returned, else a canned GUID is returned
22f8da32adSTom Joseph  */
23*36e3c539SVernon Mauery const Guid& getSystemGUID();
2483029cb8STom Joseph 
2583029cb8STom Joseph /**
2683029cb8STom Joseph  *  @brief Register the callback to update the cache when the GUID changes
2783029cb8STom Joseph  */
2883029cb8STom Joseph void registerGUIDChangeCallback();
29f8da32adSTom Joseph 
30f8da32adSTom Joseph } // namespace command
31