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