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

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
       2             : /* vim: set ts=8 sts=2 et sw=2 tw=80: */
       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
       5             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
       6             : 
       7             : #ifndef mozilla_dom_indexeddb_filemanager_h__
       8             : #define mozilla_dom_indexeddb_filemanager_h__
       9             : 
      10             : #include "mozilla/Attributes.h"
      11             : #include "mozilla/dom/quota/PersistenceType.h"
      12             : #include "nsDataHashtable.h"
      13             : #include "nsHashKeys.h"
      14             : #include "nsISupportsImpl.h"
      15             : 
      16             : class nsIFile;
      17             : class mozIStorageConnection;
      18             : 
      19             : namespace mozilla {
      20             : namespace dom {
      21             : namespace indexedDB {
      22             : 
      23             : class FileInfo;
      24             : 
      25             : // Implemented in ActorsParent.cpp.
      26             : class FileManager final
      27             : {
      28             :   friend class FileInfo;
      29             : 
      30             :   typedef mozilla::dom::quota::PersistenceType PersistenceType;
      31             : 
      32             :   PersistenceType mPersistenceType;
      33             :   nsCString mGroup;
      34             :   nsCString mOrigin;
      35             :   nsString mDatabaseName;
      36             : 
      37             :   nsString mDirectoryPath;
      38             :   nsString mJournalDirectoryPath;
      39             : 
      40             :   int64_t mLastFileId;
      41             : 
      42             :   // Protected by IndexedDatabaseManager::FileMutex()
      43             :   nsDataHashtable<nsUint64HashKey, FileInfo*> mFileInfos;
      44             : 
      45             :   const bool mEnforcingQuota;
      46             :   bool mInvalidated;
      47             : 
      48             : public:
      49             :   static already_AddRefed<nsIFile>
      50             :   GetFileForId(nsIFile* aDirectory, int64_t aId);
      51             : 
      52             :   static already_AddRefed<nsIFile>
      53             :   GetCheckedFileForId(nsIFile* aDirectory, int64_t aId);
      54             : 
      55             :   static nsresult
      56             :   InitDirectory(nsIFile* aDirectory,
      57             :                 nsIFile* aDatabaseFile,
      58             :                 PersistenceType aPersistenceType,
      59             :                 const nsACString& aGroup,
      60             :                 const nsACString& aOrigin,
      61             :                 uint32_t aTelemetryId);
      62             : 
      63             :   static nsresult
      64             :   GetUsage(nsIFile* aDirectory, uint64_t* aUsage);
      65             : 
      66             :   FileManager(PersistenceType aPersistenceType,
      67             :               const nsACString& aGroup,
      68             :               const nsACString& aOrigin,
      69             :               const nsAString& aDatabaseName,
      70             :               bool aEnforcingQuota);
      71             : 
      72             :   PersistenceType
      73           0 :   Type() const
      74             :   {
      75           0 :     return mPersistenceType;
      76             :   }
      77             : 
      78             :   const nsACString&
      79           0 :   Group() const
      80             :   {
      81           0 :     return mGroup;
      82             :   }
      83             : 
      84             :   const nsACString&
      85           0 :   Origin() const
      86             :   {
      87           0 :     return mOrigin;
      88             :   }
      89             : 
      90             :   const nsAString&
      91           0 :   DatabaseName() const
      92             :   {
      93           0 :     return mDatabaseName;
      94             :   }
      95             : 
      96             :   bool
      97           0 :   EnforcingQuota() const
      98             :   {
      99           0 :     return mEnforcingQuota;
     100             :   }
     101             : 
     102             :   bool
     103           0 :   Invalidated() const
     104             :   {
     105           0 :     return mInvalidated;
     106             :   }
     107             : 
     108             :   nsresult
     109             :   Init(nsIFile* aDirectory, mozIStorageConnection* aConnection);
     110             : 
     111             :   nsresult
     112             :   Invalidate();
     113             : 
     114             :   already_AddRefed<nsIFile>
     115             :   GetDirectory();
     116             : 
     117             :   already_AddRefed<nsIFile>
     118             :   GetCheckedDirectory();
     119             : 
     120             :   already_AddRefed<nsIFile>
     121             :   GetJournalDirectory();
     122             : 
     123             :   already_AddRefed<nsIFile>
     124             :   EnsureJournalDirectory();
     125             : 
     126             :   already_AddRefed<FileInfo>
     127             :   GetFileInfo(int64_t aId);
     128             : 
     129             :   already_AddRefed<FileInfo>
     130             :   GetNewFileInfo();
     131             : 
     132           0 :   NS_INLINE_DECL_THREADSAFE_REFCOUNTING(FileManager)
     133             : 
     134             : private:
     135           0 :   ~FileManager() = default;
     136             : };
     137             : 
     138             : } // namespace indexedDB
     139             : } // namespace dom
     140             : } // namespace mozilla
     141             : 
     142             : #endif // mozilla_dom_indexeddb_filemanager_h__

Generated by: LCOV version 1.13