Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 *
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/. */
7 // Local Includes
8 #include "nsSHTransaction.h"
9 #include "nsISHEntry.h"
11 //*****************************************************************************
12 //*** nsSHTransaction: Object Management
13 //*****************************************************************************
15 nsSHTransaction::nsSHTransaction() : mPersist(true), mPrev(nullptr)
16 {
17 }
20 nsSHTransaction::~nsSHTransaction()
21 {
22 }
24 //*****************************************************************************
25 // nsSHTransaction: nsISupports
26 //*****************************************************************************
28 NS_IMPL_ADDREF(nsSHTransaction)
29 NS_IMPL_RELEASE(nsSHTransaction)
31 NS_INTERFACE_MAP_BEGIN(nsSHTransaction)
32 NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsISHTransaction)
33 NS_INTERFACE_MAP_ENTRY(nsISHTransaction)
34 NS_INTERFACE_MAP_END
36 //*****************************************************************************
37 // nsSHTransaction: nsISHTransaction
38 //*****************************************************************************
40 NS_IMETHODIMP
41 nsSHTransaction::Create(nsISHEntry* aSHEntry, nsISHTransaction* aPrev)
42 {
43 SetSHEntry(aSHEntry);
44 if(aPrev)
45 aPrev->SetNext(this);
47 SetPrev(aPrev);
48 return NS_OK;
49 }
51 NS_IMETHODIMP
52 nsSHTransaction::GetSHEntry(nsISHEntry ** aResult)
53 {
54 NS_ENSURE_ARG_POINTER(aResult);
55 *aResult = mSHEntry;
56 NS_IF_ADDREF(*aResult);
57 return NS_OK;
58 }
61 NS_IMETHODIMP
62 nsSHTransaction::SetSHEntry(nsISHEntry * aSHEntry)
63 {
64 mSHEntry = aSHEntry;
65 return NS_OK;
66 }
69 NS_IMETHODIMP
70 nsSHTransaction::GetNext(nsISHTransaction * * aResult)
71 {
72 NS_ENSURE_ARG_POINTER(aResult);
73 *aResult = mNext;
74 NS_IF_ADDREF(*aResult);
75 return NS_OK;
76 }
79 NS_IMETHODIMP
80 nsSHTransaction::SetNext(nsISHTransaction * aNext)
81 {
82 if (aNext) {
83 NS_ENSURE_SUCCESS(aNext->SetPrev(this), NS_ERROR_FAILURE);
84 }
86 mNext = aNext;
87 return NS_OK;
88 }
90 NS_IMETHODIMP
91 nsSHTransaction::SetPrev(nsISHTransaction * aPrev)
92 {
93 /* This is weak reference to parent. Do not Addref it */
94 mPrev = aPrev;
95 return NS_OK;
96 }
98 nsresult
99 nsSHTransaction::GetPrev(nsISHTransaction ** aResult)
100 {
101 NS_ENSURE_ARG_POINTER(aResult);
102 *aResult = mPrev;
103 NS_IF_ADDREF(*aResult);
104 return NS_OK;
105 }
107 NS_IMETHODIMP
108 nsSHTransaction::SetPersist(bool aPersist)
109 {
110 mPersist = aPersist;
111 return NS_OK;
112 }
114 NS_IMETHODIMP
115 nsSHTransaction::GetPersist(bool* aPersist)
116 {
117 NS_ENSURE_ARG_POINTER(aPersist);
119 *aPersist = mPersist;
120 return NS_OK;
121 }