chromium/chromeos/ash/components/phonehub/feature_setup_response_processor.h

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

#ifndef CHROMEOS_ASH_COMPONENTS_PHONEHUB_FEATURE_SETUP_RESPONSE_PROCESSOR_H_
#define CHROMEOS_ASH_COMPONENTS_PHONEHUB_FEATURE_SETUP_RESPONSE_PROCESSOR_H_

#include "base/memory/raw_ptr.h"
#include "chromeos/ash/components/phonehub/message_receiver.h"
#include "chromeos/ash/components/phonehub/proto/phonehub_api.pb.h"

namespace ash {
namespace phonehub {

class MultideviceFeatureAccessManager;

class FeatureSetupResponseProcessor : public MessageReceiver::Observer {
 public:
  FeatureSetupResponseProcessor(
      MessageReceiver* message_receiver,
      MultideviceFeatureAccessManager* multidevice_feature_access_manager);

  ~FeatureSetupResponseProcessor() override;

  FeatureSetupResponseProcessor(const FeatureSetupResponseProcessor&) = delete;
  FeatureSetupResponseProcessor& operator=(
      const FeatureSetupResponseProcessor&) = delete;

 private:
  friend class FeatureSetupResponseProcessorTest;

  // MessageReceiver::Observer:
  void OnFeatureSetupResponseReceived(
      proto::FeatureSetupResponse response) override;

  raw_ptr<MessageReceiver> message_receiver_;
  raw_ptr<MultideviceFeatureAccessManager> multidevice_feature_access_manager_;
};

}  // namespace phonehub
}  // namespace ash

#endif  // CHROMEOS_ASH_COMPONENTS_PHONEHUB_FEATURE_SETUP_RESPONSE_PROCESSOR_H_