chromium/ios/chrome/browser/overlays/model/public/infobar_banner/infobar_banner_placeholder_request_config.h

// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef IOS_CHROME_BROWSER_OVERLAYS_MODEL_PUBLIC_INFOBAR_BANNER_INFOBAR_BANNER_PLACEHOLDER_REQUEST_CONFIG_H_
#define IOS_CHROME_BROWSER_OVERLAYS_MODEL_PUBLIC_INFOBAR_BANNER_INFOBAR_BANNER_PLACEHOLDER_REQUEST_CONFIG_H_

#import "ios/chrome/browser/overlays/model/public/common/placeholder_request_config.h"

#import "base/memory/raw_ptr.h"

namespace infobars {
class InfoBar;
}

// Configuration object for OverlayRequests to hold the place in the banner
// queue for an event to finish.
class InfobarBannerPlaceholderRequestConfig
    : public OverlayRequestConfig<InfobarBannerPlaceholderRequestConfig> {
 public:
  ~InfobarBannerPlaceholderRequestConfig() override;

 private:
  OVERLAY_USER_DATA_SETUP(InfobarBannerPlaceholderRequestConfig);
  explicit InfobarBannerPlaceholderRequestConfig(infobars::InfoBar* infobar);

  // OverlayUserData:
  void CreateAuxiliaryData(base::SupportsUserData* user_data) override;

  raw_ptr<infobars::InfoBar> infobar_ = nullptr;
};

#endif  // IOS_CHROME_BROWSER_OVERLAYS_MODEL_PUBLIC_INFOBAR_BANNER_INFOBAR_BANNER_PLACEHOLDER_REQUEST_CONFIG_H_