mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 10:44:56 +00:00
308103a467
Now when NormalOriginOperationBase lets the derived classes to create directory locks, it is no longer needed to keep members related to directory locking in the NormalOriginOperationBase class. Changes done in this patch: - optimized members of derived classes - adjusted CreateDirectoryLock implementations - removed members related to directory locking from NormalOriginOperationBase - adjusted constructors of derived classes Differential Revision: https://phabricator.services.mozilla.com/D185647
57 lines
1.5 KiB
C++
57 lines
1.5 KiB
C++
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#ifndef DOM_QUOTA_RESOLVABLENORMALORIGINOP_H_
|
|
#define DOM_QUOTA_RESOLVABLENORMALORIGINOP_H_
|
|
|
|
#include "NormalOriginOperationBase.h"
|
|
|
|
#include "mozilla/MozPromise.h"
|
|
|
|
namespace mozilla::dom::quota {
|
|
|
|
template <typename T>
|
|
class ResolvableNormalOriginOp : public NormalOriginOperationBase {
|
|
public:
|
|
using PromiseType = MozPromise<T, nsresult, false>;
|
|
|
|
RefPtr<PromiseType> OnResults() {
|
|
AssertIsOnOwningThread();
|
|
|
|
return mPromiseHolder.Ensure(__func__);
|
|
}
|
|
|
|
protected:
|
|
ResolvableNormalOriginOp(MovingNotNull<RefPtr<QuotaManager>> aQuotaManager,
|
|
const char* aName)
|
|
: NormalOriginOperationBase(std::move(aQuotaManager), aName) {
|
|
AssertIsOnOwningThread();
|
|
}
|
|
|
|
virtual ~ResolvableNormalOriginOp() = default;
|
|
|
|
virtual T GetResolveValue() = 0;
|
|
|
|
private:
|
|
void SendResults() override {
|
|
#ifdef DEBUG
|
|
NoteActorDestroyed();
|
|
#endif
|
|
|
|
if (NS_SUCCEEDED(mResultCode)) {
|
|
mPromiseHolder.ResolveIfExists(GetResolveValue(), __func__);
|
|
} else {
|
|
mPromiseHolder.RejectIfExists(mResultCode, __func__);
|
|
}
|
|
}
|
|
|
|
MozPromiseHolder<PromiseType> mPromiseHolder;
|
|
};
|
|
|
|
} // namespace mozilla::dom::quota
|
|
|
|
#endif // DOM_QUOTA_RESOLVABLENORMALORIGINOP_H_
|