1 // Copyright 2021 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef MEDIA_MOJO_MOJOM_MEDIA_FOUNDATION_CDM_DATA_MOJOM_TRAITS_H_
6 #define MEDIA_MOJO_MOJOM_MEDIA_FOUNDATION_CDM_DATA_MOJOM_TRAITS_H_
10 #include "base/files/file_path.h"
11 #include "base/unguessable_token.h"
12 #include "media/cdm/media_foundation_cdm_data.h"
13 #include "media/mojo/mojom/cdm_document_service.mojom.h"
18 struct StructTraits<media::mojom::MediaFoundationCdmDataDataView,
19 std::unique_ptr<media::MediaFoundationCdmData>> {
20 static const base::UnguessableToken& origin_id(
21 const std::unique_ptr<media::MediaFoundationCdmData>& input) {
22 return input->origin_id;
25 static const absl::optional<std::vector<uint8_t>>& client_token(
26 const std::unique_ptr<media::MediaFoundationCdmData>& input) {
27 return input->client_token;
30 static const base::FilePath& cdm_store_path_root(
31 const std::unique_ptr<media::MediaFoundationCdmData>& input) {
32 return input->cdm_store_path_root;
35 static bool Read(media::mojom::MediaFoundationCdmDataDataView input,
36 std::unique_ptr<media::MediaFoundationCdmData>* output);
41 #endif // MEDIA_MOJO_MOJOM_MEDIA_FOUNDATION_CDM_DATA_MOJOM_TRAITS_H_