chromium/ash/webui/eche_app_ui/eche_message_receiver_impl.cc

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

#include "ash/webui/eche_app_ui/eche_message_receiver_impl.h"

namespace ash {
namespace eche_app {

EcheMessageReceiverImpl::EcheMessageReceiverImpl(
    secure_channel::ConnectionManager* connection_manager)
    : connection_manager_(connection_manager) {
  connection_manager_->AddObserver(this);
}

EcheMessageReceiverImpl::~EcheMessageReceiverImpl() {
  connection_manager_->RemoveObserver(this);
}

void EcheMessageReceiverImpl::OnMessageReceived(const std::string& payload) {
  proto::ExoMessage message;
  message.ParseFromString(payload);
  if (message.has_apps_access_state_response()) {
    NotifyGetAppsAccessStateResponse(message.apps_access_state_response());
  } else if (message.has_apps_setup_response()) {
    NotifySendAppsSetupResponse(message.apps_setup_response());
  } else if (message.has_status_change()) {
    NotifyStatusChange(message.status_change());
  } else if (message.has_policy_state_change()) {
    NotifyAppPolicyStateChange(message.policy_state_change());
  }
}

}  // namespace eche_app
}  // namespace ash