Coverage Report

Created: 2018-09-25 14:53

/src/mozilla-central/dom/media/systemservices/MediaSystemResourceManagerParent.h
Line
Count
Source (jump to first uncovered line)
1
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2
/* This Source Code Form is subject to the terms of the Mozilla Public
3
 * License, v. 2.0. If a copy of the MPL was not distributed with this
4
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5
6
#if !defined(MediaSystemResourceManagerParent_h_)
7
#define MediaSystemResourceManagerParent_h_
8
9
#include "MediaSystemResourceManager.h"
10
#include "MediaSystemResourceService.h"
11
#include "MediaSystemResourceTypes.h"
12
#include "mozilla/media/PMediaSystemResourceManagerParent.h"
13
14
namespace mozilla {
15
namespace media {
16
17
/**
18
 * Handle MediaSystemResourceManager's IPC
19
 */
20
class MediaSystemResourceManagerParent final : public PMediaSystemResourceManagerParent
21
{
22
public:
23
  MediaSystemResourceManagerParent();
24
  virtual ~MediaSystemResourceManagerParent();
25
26
protected:
27
  mozilla::ipc::IPCResult RecvAcquire(const uint32_t& aId,
28
                                      const MediaSystemResourceType& aResourceType,
29
                                      const bool& aWillWait) override;
30
31
  mozilla::ipc::IPCResult RecvRelease(const uint32_t& aId) override;
32
33
  mozilla::ipc::IPCResult RecvRemoveResourceManager() override;
34
35
private:
36
  void ActorDestroy(ActorDestroyReason aActorDestroyReason) override;
37
38
  struct MediaSystemResourceRequest {
39
    MediaSystemResourceRequest()
40
      : mId(-1), mResourceType(MediaSystemResourceType::INVALID_RESOURCE) {}
41
    MediaSystemResourceRequest(uint32_t aId, MediaSystemResourceType aResourceType)
42
0
      : mId(aId), mResourceType(aResourceType) {}
43
    int32_t mId;
44
    MediaSystemResourceType mResourceType;
45
  };
46
47
  bool mDestroyed;
48
49
  RefPtr<MediaSystemResourceService> mMediaSystemResourceService;
50
51
  nsClassHashtable<nsUint32HashKey, MediaSystemResourceRequest> mResourceRequests;
52
};
53
54
} // namespace media
55
} // namespace mozilla
56
57
#endif