diff options
author | Matt A. Tobin <email@mattatobin.com> | 2021-11-22 11:41:22 -0500 |
---|---|---|
committer | Matt A. Tobin <email@mattatobin.com> | 2021-11-22 11:41:22 -0500 |
commit | 7572f6fb227f67f5f820019fe8afa899aa700862 (patch) | |
tree | 33e53aa11ae6107f5048f313a0e7b1e748baad0f /system/docshell/shistory/nsSHTransaction.cpp | |
parent | 3bcef0ff65fa2ab6a482543afd1b1e00dd31cfee (diff) | |
download | aura-central-7572f6fb227f67f5f820019fe8afa899aa700862.tar.gz |
Issue %3005 - Move docshell/ to system/
Diffstat (limited to 'system/docshell/shistory/nsSHTransaction.cpp')
-rw-r--r-- | system/docshell/shistory/nsSHTransaction.cpp | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/system/docshell/shistory/nsSHTransaction.cpp b/system/docshell/shistory/nsSHTransaction.cpp new file mode 100644 index 000000000..5f9a6fd5b --- /dev/null +++ b/system/docshell/shistory/nsSHTransaction.cpp @@ -0,0 +1,106 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* 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/. */ + +#include "nsSHTransaction.h" +#include "nsISHEntry.h" + +nsSHTransaction::nsSHTransaction() + : mPersist(true) + , mPrev(nullptr) +{ +} + +nsSHTransaction::~nsSHTransaction() +{ +} + +NS_IMPL_ADDREF(nsSHTransaction) +NS_IMPL_RELEASE(nsSHTransaction) + +NS_INTERFACE_MAP_BEGIN(nsSHTransaction) + NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsISHTransaction) + NS_INTERFACE_MAP_ENTRY(nsISHTransaction) +NS_INTERFACE_MAP_END + +NS_IMETHODIMP +nsSHTransaction::Create(nsISHEntry* aSHEntry, nsISHTransaction* aPrev) +{ + SetSHEntry(aSHEntry); + if (aPrev) { + aPrev->SetNext(this); + } + + SetPrev(aPrev); + return NS_OK; +} + +NS_IMETHODIMP +nsSHTransaction::GetSHEntry(nsISHEntry** aResult) +{ + NS_ENSURE_ARG_POINTER(aResult); + *aResult = mSHEntry; + NS_IF_ADDREF(*aResult); + return NS_OK; +} + +NS_IMETHODIMP +nsSHTransaction::SetSHEntry(nsISHEntry* aSHEntry) +{ + mSHEntry = aSHEntry; + return NS_OK; +} + +NS_IMETHODIMP +nsSHTransaction::GetNext(nsISHTransaction** aResult) +{ + NS_ENSURE_ARG_POINTER(aResult); + *aResult = mNext; + NS_IF_ADDREF(*aResult); + return NS_OK; +} + +NS_IMETHODIMP +nsSHTransaction::SetNext(nsISHTransaction* aNext) +{ + if (aNext) { + NS_ENSURE_SUCCESS(aNext->SetPrev(this), NS_ERROR_FAILURE); + } + + mNext = aNext; + return NS_OK; +} + +NS_IMETHODIMP +nsSHTransaction::SetPrev(nsISHTransaction* aPrev) +{ + /* This is weak reference to parent. Do not Addref it */ + mPrev = aPrev; + return NS_OK; +} + +nsresult +nsSHTransaction::GetPrev(nsISHTransaction** aResult) +{ + NS_ENSURE_ARG_POINTER(aResult); + *aResult = mPrev; + NS_IF_ADDREF(*aResult); + return NS_OK; +} + +NS_IMETHODIMP +nsSHTransaction::SetPersist(bool aPersist) +{ + mPersist = aPersist; + return NS_OK; +} + +NS_IMETHODIMP +nsSHTransaction::GetPersist(bool* aPersist) +{ + NS_ENSURE_ARG_POINTER(aPersist); + + *aPersist = mPersist; + return NS_OK; +} |