LCOV - code coverage report
Current view: top level - dom/media/systemservices - MediaSystemResourceManager.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 1 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 2 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
       2             : /* vim:set ts=2 sw=2 sts=2 et cindent: */
       3             : /* This Source Code Form is subject to the terms of the Mozilla Public
       4             :  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
       5             :  * You can obtain one at http://mozilla.org/MPL/2.0/. */
       6             : 
       7             : #if !defined(MediaSystemResourceManager_h_)
       8             : #define MediaSystemResourceManager_h_
       9             : 
      10             : #include <queue>
      11             : 
      12             : #include "MediaSystemResourceTypes.h"
      13             : #include "mozilla/ReentrantMonitor.h"
      14             : #include "mozilla/StaticPtr.h"
      15             : #include "nsDataHashtable.h"
      16             : #include "nsISupportsImpl.h"
      17             : 
      18             : namespace mozilla {
      19             : 
      20             : namespace media {
      21             : class MediaSystemResourceManagerChild;
      22             : } // namespace media
      23             : 
      24             : class MediaSystemResourceClient;
      25             : class MediaSystemResourceReservationListener;
      26             : class ReentrantMonitor;
      27             : class TaskQueue;
      28             : 
      29             : /**
      30             :  * Manage media system resource allocation requests within a process.
      31             :  */
      32             : class MediaSystemResourceManager
      33             : {
      34             : public:
      35           0 :   NS_INLINE_DECL_THREADSAFE_REFCOUNTING(MediaSystemResourceManager)
      36             : 
      37             :   static MediaSystemResourceManager* Get();
      38             :   static void Init();
      39             :   static void Shutdown();
      40             : 
      41             :   void OnIpcClosed();
      42             : 
      43             :   void Register(MediaSystemResourceClient* aClient);
      44             :   void Unregister(MediaSystemResourceClient* aClient);
      45             : 
      46             :   bool SetListener(MediaSystemResourceClient* aClient,
      47             :                    MediaSystemResourceReservationListener* aListener);
      48             : 
      49             :   void Acquire(MediaSystemResourceClient* aClient);
      50             :   bool AcquireSyncNoWait(MediaSystemResourceClient* aClient);
      51             :   void ReleaseResource(MediaSystemResourceClient* aClient);
      52             : 
      53             :   void RecvResponse(uint32_t aId, bool aSuccess);
      54             : 
      55             : private:
      56             :   MediaSystemResourceManager();
      57             :   virtual ~MediaSystemResourceManager();
      58             : 
      59             :   void OpenIPC();
      60             :   void CloseIPC();
      61             :   bool IsIpcClosed();
      62             : 
      63             :   void DoAcquire(uint32_t aId);
      64             : 
      65             :   void DoRelease(uint32_t aId);
      66             : 
      67             :   void HandleAcquireResult(uint32_t aId, bool aSuccess);
      68             : 
      69             :   ReentrantMonitor mReentrantMonitor;
      70             : 
      71             :   bool mShutDown;
      72             : 
      73             :   media::MediaSystemResourceManagerChild* mChild;
      74             : 
      75             :   nsDataHashtable<nsUint32HashKey, MediaSystemResourceClient*> mResourceClients;
      76             : 
      77             :   static StaticRefPtr<MediaSystemResourceManager> sSingleton;
      78             : };
      79             : 
      80             : } // namespace mozilla
      81             : 
      82             : #endif

Generated by: LCOV version 1.13