910e62b5创建于 1月15日历史提交
// 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 "remoting/test/test_device_id_provider.h"

#include <utility>

#include "base/logging.h"
#include "base/uuid.h"
#include "build/build_config.h"

namespace remoting {
namespace test {

TestDeviceIdProvider::TestDeviceIdProvider(TokenStorage* token_storage)
    : token_storage_(token_storage) {
  DCHECK(token_storage_);
}

TestDeviceIdProvider::~TestDeviceIdProvider() = default;

ftl::DeviceId TestDeviceIdProvider::GetDeviceId() {
  std::string id = token_storage_->FetchDeviceId();
  if (id.empty()) {
    id = "crd-test-" + base::Uuid::GenerateRandomV4().AsLowercaseString();
    VLOG(0) << "Generated new device_id: " << id;
    token_storage_->StoreDeviceId(id);
  } else {
    VLOG(0) << "Using stored device_id: " << id;
  }
  ftl::DeviceId device_id;
  device_id.set_type(ftl::DeviceIdType_Type_WEB_UUID);
  device_id.set_id(id);
  return device_id;
}

}  // namespace test
}  // namespace remoting