| #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_ |