blob: cba27779bf1ef9e4797282701e7aa82c1a789548 [file] [log] [blame]
#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_