#ifndef THIRD_PARTY_MILOTIC_INTERNAL_CC_REDFISH_SUBSCRIPTION_BACKEND_IMPL_H_
#define THIRD_PARTY_MILOTIC_INTERNAL_CC_REDFISH_SUBSCRIPTION_BACKEND_IMPL_H_

#include <memory>
#include <string>
#include <unordered_set>

#include "absl/status/status.h"
#include "absl/strings/string_view.h"
#include "subscription.h"
#include "app.hpp"

namespace milotic {

// Implements Interface for a BmcWeb SubscriptionService backend.
class BmcWebBackend : public ecclesia::SubscriptionBackend {
 public:
  static std::unique_ptr<BmcWebBackend> Create(App* app);

  absl::Status Query(
      absl::string_view url, QueryCallback&& query_callback,
      const std::unordered_set<std::string>& peer_privileges) override;
  absl::Status Subscribe(
      absl::string_view url, SubscribeCallback&& callback,
      const std::unordered_set<std::string>& peer_privileges) override;

 private:
  explicit BmcWebBackend(App& app) : app_(app) {}

  App& app_;
};

}  // namespace milotic

#endif  // THIRD_PARTY_MILOTIC_INTERNAL_CC_REDFISH_SUBSCRIPTION_BACKEND_IMPL_H_
