blob: fa7d13a86306dd4778cd656978b35b34cf8bfb9c [file]
#ifndef THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_HFT_MANAGER_DEBUG_JSON_H_
#define THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_HFT_MANAGER_DEBUG_JSON_H_
#include <nlohmann/json.hpp>
#include "tlbmc/hft/core/hft_service.h"
#include "tlbmc/hft/core/manager.h"
namespace milotic_hft {
// Debug-JSON rendering for the subscription manager, its subscriptions, and
// the HFT gRPC service. Lives outside the hft core so the core carries no
// nlohmann dependency: these helpers downcast to the known implementations
// (SubscriptionManagerImpl, SubscriptionManagerFake, ActiveSubscription) and
// render their debug snapshots; unknown implementations render as an empty
// object.
nlohmann::json SubscriptionManagerDebugJson(const SubscriptionManager& manager);
nlohmann::json SubscriptionDebugJson(
const SubscriptionManager::Subscription& subscription);
nlohmann::json HftServiceDebugJson(const HftServiceImpl& service);
} // namespace milotic_hft
#endif // THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_HFT_MANAGER_DEBUG_JSON_H_