chromium/components/services/app_service/public/cpp/instance.cc

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

#include "components/services/app_service/public/cpp/instance.h"

#include <memory>
#include <utility>

namespace apps {

Instance::Instance(const std::string& app_id,
                   const base::UnguessableToken& instance_id,
                   aura::Window* window)
    : app_id_(app_id), instance_id_(instance_id), window_(window) {}

Instance::~Instance() = default;

std::unique_ptr<Instance> Instance::Clone() {
  std::unique_ptr<Instance> instance = std::make_unique<Instance>(
      this->AppId(), this->InstanceId(), this->Window());

  instance->SetLaunchId(this->LaunchId());
  instance->UpdateState(this->State(), this->LastUpdatedTime());
  instance->SetBrowserContext(this->BrowserContext());
  return instance;
}

void Instance::UpdateState(InstanceState state,
                           const base::Time& last_updated_time) {
  state_ = state;
  last_updated_time_ = last_updated_time;
}

}  // namespace apps