blob: 5180e6b85da0017b8693cf140aebf9f365e62f22 [file]
#pragma once
#include <sdbusplus/asio/connection.hpp>
#include <map>
#include <memory>
#include <string>
#include <variant>
#include <vector>
using BusInfo = std::map<std::string, std::string>;
enum class MctpMessageType : uint8_t
{
CONTROL = 0,
PLDM = 2,
NVME_MI = 4,
SPDM = 5
};
// Global maps (declared extern)
#include "Utils.hpp"
#include <functional>
extern std::map<std::string, SensorData> mctpEndpointConfigMap;
using MctpEndpointCallback =
std::function<void(const std::string& endpointPath,
const SensorData& endpointConfig, bool isRemoved)>;
using MctpCallbackToken = size_t;
MctpCallbackToken registerMctpEndpointCallback(MctpEndpointCallback&& cb);
void unregisterMctpEndpointCallback(MctpCallbackToken token);
void unregisterAllMctpEndpointCallbacks();
void setupMctpEndpointListener(
const std::shared_ptr<sdbusplus::asio::connection>& conn,
MctpMessageType msgType);
void cleanupMctpEndpointListener();
BusInfo extractBusInfo(const SensorData& configData);