blob: 0ef914b559e59887d09bebe91701f04b049092c2 [file] [log] [blame]
#ifndef THIRD_PARTY_MILOTIC_INTERNAL_CC_BMCWEB_APP_INTERFACE_H_
#define THIRD_PARTY_MILOTIC_INTERNAL_CC_BMCWEB_APP_INTERFACE_H_
#include <memory>
#include <string>
#include "absl/container/flat_hash_set.h"
#include "dbus_utility.hpp" // NOLINT
#include "async_resp.hpp" // NOLINT
#include "http_request.hpp" // NOLINT
#include "router_interface.h"
namespace crow {
// Abstract Redfish App Away.
class AppInterface {
public:
AppInterface() = default;
virtual ~AppInterface() = default;
AppInterface(const AppInterface&) = default;
AppInterface& operator=(const AppInterface&) = default;
AppInterface(AppInterface&&) = default;
AppInterface& operator=(AppInterface&&) = default;
virtual absl::flat_hash_set<std::string> GetOwnedUrls() const = 0;
virtual void SetSmartRouter(::crow::RouterInterface* smart_router) = 0;
virtual void HandleFromCrowRequest(
const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& async_resp) const = 0;
virtual void DebugPrint() const = 0;
};
} // namespace crow
#endif // THIRD_PARTY_MILOTIC_INTERNAL_CC_BMCWEB_APP_INTERFACE_H_