tor-browser

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

OpenClientDirectoryInfo.cpp (2536B)


      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 file,
      5 * You can obtain one at http://mozilla.org/MPL/2.0/. */
      6 
      7 #include "mozilla/dom/quota/OpenClientDirectoryInfo.h"
      8 
      9 #include "mozilla/dom/quota/AssertionsImpl.h"
     10 #include "mozilla/dom/quota/UniversalDirectoryLock.h"
     11 
     12 namespace mozilla::dom::quota {
     13 
     14 OpenClientDirectoryInfo::OpenClientDirectoryInfo() {
     15  MOZ_COUNT_CTOR(mozilla::dom::quota::OpenClientDirectoryInfo);
     16 }
     17 
     18 OpenClientDirectoryInfo::~OpenClientDirectoryInfo() {
     19  MOZ_COUNT_DTOR(mozilla::dom::quota::OpenClientDirectoryInfo);
     20 }
     21 
     22 void OpenClientDirectoryInfo::AssertIsOnOwningThread() const {
     23  NS_ASSERT_OWNINGTHREAD(OpenClientDirectoryInfo);
     24 }
     25 
     26 void OpenClientDirectoryInfo::SetFirstAccessPromise(
     27    RefPtr<BoolPromise> aFirstAccessPromise) {
     28  AssertIsOnOwningThread();
     29  MOZ_ASSERT(aFirstAccessPromise);
     30  MOZ_ASSERT(!mFirstAccessPromise);
     31 
     32  mFirstAccessPromise = std::move(aFirstAccessPromise);
     33 }
     34 
     35 RefPtr<BoolPromise> OpenClientDirectoryInfo::AcquireFirstAccessPromise() const {
     36  AssertIsOnOwningThread();
     37  MOZ_ASSERT(mFirstAccessPromise);
     38 
     39  return mFirstAccessPromise;
     40 }
     41 
     42 void OpenClientDirectoryInfo::SetLastAccessDirectoryLock(
     43    RefPtr<UniversalDirectoryLock> aLastAccessDirectoryLock) {
     44  AssertIsOnOwningThread();
     45  MOZ_ASSERT(aLastAccessDirectoryLock);
     46  MOZ_ASSERT(!mLastAccessDirectoryLock);
     47 
     48  mLastAccessDirectoryLock = std::move(aLastAccessDirectoryLock);
     49 }
     50 
     51 bool OpenClientDirectoryInfo::HasLastAccessDirectoryLock() const {
     52  AssertIsOnOwningThread();
     53 
     54  return mLastAccessDirectoryLock;
     55 }
     56 
     57 RefPtr<UniversalDirectoryLock>
     58 OpenClientDirectoryInfo::ForgetLastAccessDirectoryLock() {
     59  AssertIsOnOwningThread();
     60  MOZ_ASSERT(mLastAccessDirectoryLock);
     61 
     62  return std::move(mLastAccessDirectoryLock);
     63 }
     64 
     65 uint64_t OpenClientDirectoryInfo::ClientDirectoryLockHandleCount() const {
     66  AssertIsOnOwningThread();
     67 
     68  return mClientDirectoryLockHandleCount;
     69 }
     70 
     71 void OpenClientDirectoryInfo::IncreaseClientDirectoryLockHandleCount() {
     72  AssertIsOnOwningThread();
     73 
     74  AssertNoOverflow(mClientDirectoryLockHandleCount, 1);
     75  mClientDirectoryLockHandleCount++;
     76 }
     77 
     78 void OpenClientDirectoryInfo::DecreaseClientDirectoryLockHandleCount() {
     79  AssertIsOnOwningThread();
     80 
     81  AssertNoUnderflow(mClientDirectoryLockHandleCount, 1);
     82  mClientDirectoryLockHandleCount--;
     83 }
     84 
     85 }  // namespace mozilla::dom::quota