tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

MediaSystemResourceManagerParent.h (1845B)


      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::media {
     15 
     16 /**
     17 * Handle MediaSystemResourceManager's IPC
     18 */
     19 class MediaSystemResourceManagerParent final
     20    : public PMediaSystemResourceManagerParent {
     21  friend class PMediaSystemResourceManagerParent;
     22 
     23 public:
     24  MediaSystemResourceManagerParent();
     25  virtual ~MediaSystemResourceManagerParent();
     26 
     27 protected:
     28  mozilla::ipc::IPCResult RecvAcquire(
     29      const uint32_t& aId, const MediaSystemResourceType& aResourceType,
     30      const bool& aWillWait);
     31 
     32  mozilla::ipc::IPCResult RecvRelease(const uint32_t& aId);
     33 
     34  mozilla::ipc::IPCResult RecvRemoveResourceManager();
     35 
     36 private:
     37  void ActorDestroy(ActorDestroyReason aActorDestroyReason) override;
     38 
     39  struct MediaSystemResourceRequest {
     40    MediaSystemResourceRequest()
     41        : mId(-1), mResourceType(MediaSystemResourceType::INVALID_RESOURCE) {}
     42    MediaSystemResourceRequest(uint32_t aId,
     43                               MediaSystemResourceType aResourceType)
     44        : mId(aId), mResourceType(aResourceType) {}
     45    int32_t mId;
     46    MediaSystemResourceType mResourceType;
     47  };
     48 
     49  bool mDestroyed;
     50 
     51  RefPtr<MediaSystemResourceService> mMediaSystemResourceService;
     52 
     53  nsClassHashtable<nsUint32HashKey, MediaSystemResourceRequest>
     54      mResourceRequests;
     55 };
     56 
     57 }  // namespace mozilla::media
     58 
     59 #endif