Coverage Report

Created: 2018-09-25 14:53

/src/mozilla-central/dom/media/gtest/MockMediaResource.h
Line
Count
Source (jump to first uncovered line)
1
/* This Source Code Form is subject to the terms of the Mozilla Public
2
 * License, v. 2.0. If a copy of the MPL was not distributed with this
3
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4
5
#ifndef MOCK_MEDIA_RESOURCE_H_
6
#define MOCK_MEDIA_RESOURCE_H_
7
8
#include "MediaResource.h"
9
#include "nsTArray.h"
10
#include "mozilla/Atomics.h"
11
12
namespace mozilla {
13
14
DDLoggedTypeDeclNameAndBase(MockMediaResource, MediaResource);
15
16
class MockMediaResource
17
  : public MediaResource
18
  , public DecoderDoctorLifeLogger<MockMediaResource>
19
{
20
public:
21
  explicit MockMediaResource(const char* aFileName);
22
  nsresult ReadAt(int64_t aOffset, char* aBuffer, uint32_t aCount,
23
                  uint32_t* aBytes) override;
24
  // Data stored in file, caching recommended.
25
0
  bool ShouldCacheReads() override { return true; }
26
0
  void Pin() override {}
27
0
  void Unpin() override {}
28
  int64_t GetLength() override;
29
  int64_t GetNextCachedData(int64_t aOffset) override;
30
  int64_t GetCachedDataEnd(int64_t aOffset) override;
31
  bool IsDataCachedToEndOfResource(int64_t aOffset) override
32
0
  {
33
0
    return false;
34
0
  }
35
  nsresult ReadFromCache(char* aBuffer, int64_t aOffset,
36
                         uint32_t aCount) override
37
0
  {
38
0
    uint32_t bytesRead = 0;
39
0
    nsresult rv = ReadAt(aOffset, aBuffer, aCount, &bytesRead);
40
0
    NS_ENSURE_SUCCESS(rv, rv);
41
0
    return bytesRead == aCount ? NS_OK : NS_ERROR_FAILURE;
42
0
  }
43
44
  nsresult Open();
45
  nsresult GetCachedRanges(MediaByteRangeSet& aRanges) override;
46
47
  void MockClearBufferedRanges();
48
  void MockAddBufferedRange(int64_t aStart, int64_t aEnd);
49
50
protected:
51
  virtual ~MockMediaResource();
52
53
private:
54
  FILE* mFileHandle;
55
  const char* mFileName;
56
  MediaByteRangeSet mRanges;
57
  Atomic<int> mEntry;
58
};
59
60
} // namespace mozilla
61
62
#endif