dom/media/fake-cdm/cdm-test-storage.h
author Calixte <cdenizet@mozilla.com>
Fri, 03 Feb 2023 10:01:34 +0000
changeset 651654 a356e2d3cf4646e614e3666509c7c3ee9474a96b
parent 619718 375a74a50037f0e8c9504df2f3b30219c2e64d2d
permissions -rw-r--r--
Bug 1810761 - Add API to save a pdf file opened in pdf.js r=pdfjs-reviewers,geckoview-reviewers,marco,ohall,calu Differential Revision: https://phabricator.services.mozilla.com/D168413

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#ifndef TEST_CDM_STORAGE_H__
#define TEST_CDM_STORAGE_H__

#include <functional>
#include <string>
#include <cstdint>
#include "content_decryption_module.h"

#define IO_SUCCEEDED(x) ((x) == cdm::FileIOClient::Status::kSuccess)
#define IO_FAILED(x) ((x) != cdm::FileIOClient::Status::kSuccess)

class ReadContinuation {
 public:
  virtual ~ReadContinuation() = default;
  virtual void operator()(bool aSuccess, const uint8_t* aData,
                          uint32_t aDataSize) = 0;
};

void WriteRecord(cdm::Host_10* aHost, const std::string& aRecordName,
                 const std::string& aData, std::function<void()>&& aOnSuccess,
                 std::function<void()>&& aOnFailure);

void WriteRecord(cdm::Host_10* aHost, const std::string& aRecordName,
                 const uint8_t* aData, uint32_t aNumBytes,
                 std::function<void()>&& aOnSuccess,
                 std::function<void()>&& aOnFailure);

void ReadRecord(
    cdm::Host_10* aHost, const std::string& aRecordName,
    std::function<void(bool, const uint8_t*, uint32_t)>&& aOnReadComplete);

class OpenContinuation {
 public:
  virtual ~OpenContinuation() = default;
  virtual void operator()(bool aSuccess) = 0;
};

void OpenRecord(cdm::Host_10* aHost, const std::string& aRecordName,
                std::function<void(bool)>&& aOpenComplete);
#endif  // TEST_CDM_STORAGE_H__