[storage] Store 'fact.amount' once in 'act' table
[abstract.git] / view / aaSessionHistory.cpp
blob3f8458a48ed22c40324dc0ded0fdadf5277a8ac8
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim:set ts=2 sw=2 sts=2 et cindent tw=79 ft=cpp: */
3 /*
4 * Copyright (C) 2007 Sergey Yanovich <ynvich@gmail.com>
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as
8 * published by the Free Software Foundation; either version 2 of the
9 * License, or (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
16 * You should have received a copy of the GNU General Public
17 * License along with this program; if not, write to the
18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 * Boston, MA 02111-1307, USA.
22 #include <abstract/aacore.h>
24 #include "nsCOMPtr.h"
25 #include "nsISHistory.h"
26 #include "nsIInterfaceRequestor.h"
27 #include "nsComponentManagerUtils.h"
29 /* Unfrozen API */
30 #include "unstable/nsISHistoryInternal.h"
31 #include "unstable/nsIWebNavigation.h"
33 /* Project includes */
34 #include <abstract/storage/aaISession.h>
35 #include "aaSessionHistory.h"
37 aaSessionHistory::aaSessionHistory()
39 mSH = do_CreateInstance(NS_SHISTORY_CONTRACTID);
40 mSHI = do_QueryInterface(mSH);
41 mWN = do_QueryInterface(mSH);
44 aaSessionHistory::~aaSessionHistory()
48 NS_IMPL_ISUPPORTS4(aaSessionHistory,
49 nsISHistory,
50 nsISHistoryInternal,
51 nsIWebNavigation,
52 nsIInterfaceRequestor)
54 /* nsISHistory */
55 NS_IMETHODIMP
56 aaSessionHistory::GetCount(PRInt32 *aCount)
58 *aCount = 0;
59 return mSH->GetCount(aCount);
62 NS_IMETHODIMP
63 aaSessionHistory::GetIndex(PRInt32 *aIndex)
65 return mSH->GetIndex(aIndex);
68 NS_IMETHODIMP
69 aaSessionHistory::GetRequestedIndex(PRInt32 *aRequestedIndex)
71 return mSH->GetRequestedIndex(aRequestedIndex);
74 NS_IMETHODIMP
75 aaSessionHistory::GetMaxLength(PRInt32 *aMaxLength)
77 return mSH->GetMaxLength(aMaxLength);
79 NS_IMETHODIMP
80 aaSessionHistory::SetMaxLength(PRInt32 aMaxLength)
82 return mSH->SetMaxLength(aMaxLength);
85 NS_IMETHODIMP
86 aaSessionHistory::GetEntryAtIndex(PRInt32 index, PRBool modifyIndex,
87 nsIHistoryEntry **_retval)
89 return mSH->GetEntryAtIndex(index, modifyIndex, _retval);
92 NS_IMETHODIMP
93 aaSessionHistory::PurgeHistory(PRInt32 numEntries)
95 return mSH->PurgeHistory(numEntries);
98 NS_IMETHODIMP
99 aaSessionHistory::AddSHistoryListener(nsISHistoryListener *aListener)
101 return mSH->AddSHistoryListener(aListener);
104 NS_IMETHODIMP
105 aaSessionHistory::RemoveSHistoryListener(nsISHistoryListener *aListener)
107 return mSH->RemoveSHistoryListener(aListener);
110 NS_IMETHODIMP
111 aaSessionHistory::GetSHistoryEnumerator(nsISimpleEnumerator * *aSHistoryEnumerator)
113 return mSH->GetSHistoryEnumerator(aSHistoryEnumerator);
117 /* nsISHistoryInternal */
118 NS_IMETHODIMP
119 aaSessionHistory::AddEntry(nsISHEntry *aEntry, PRBool aPersist)
121 nsCOMPtr<nsISHEntry> pageView( do_CreateInstance(
122 "@aasii.org/view/page-view;1", aEntry));
123 return mSHI->AddEntry(pageView, aPersist);
126 NS_IMETHODIMP
127 aaSessionHistory::GetRootTransaction(nsISHTransaction * *aRootTransaction)
129 return mSHI->GetRootTransaction(aRootTransaction);
132 NS_IMETHODIMP
133 aaSessionHistory::GetRootDocShell(nsIDocShell * *aRootDocShell)
135 return mSHI->GetRootDocShell( aRootDocShell );
137 NS_IMETHODIMP
138 aaSessionHistory::SetRootDocShell(nsIDocShell * aRootDocShell)
140 return mSHI->SetRootDocShell( aRootDocShell );
143 NS_IMETHODIMP
144 aaSessionHistory::UpdateIndex()
146 return mSHI->UpdateIndex();
149 NS_IMETHODIMP
150 aaSessionHistory::ReplaceEntry(PRInt32 aIndex, nsISHEntry *aReplaceEntry)
152 return mSHI->ReplaceEntry(aIndex, aReplaceEntry);
155 NS_IMETHODIMP
156 aaSessionHistory::GetListener(nsISHistoryListener * *aListener)
158 return mSHI->GetListener(aListener);
161 NS_IMETHODIMP
162 aaSessionHistory::EvictContentViewers(PRInt32 previousIndex, PRInt32 index)
164 return mSHI->EvictContentViewers(previousIndex, index);
167 /* nsIWebNavigation */
168 NS_IMETHODIMP
169 aaSessionHistory::GetCanGoBack(PRBool *aCanGoBack)
171 return mWN->GetCanGoBack(aCanGoBack);
174 NS_IMETHODIMP
175 aaSessionHistory::GetCanGoForward(PRBool *aCanGoForward)
177 return mWN->GetCanGoForward(aCanGoForward);
180 NS_IMETHODIMP
181 aaSessionHistory::GoBack()
183 return mWN->GoBack();
186 NS_IMETHODIMP
187 aaSessionHistory::GoForward()
189 return mWN->GoForward();
192 NS_IMETHODIMP
193 aaSessionHistory::GotoIndex(PRInt32 index)
195 return mWN->GotoIndex(index);
198 NS_IMETHODIMP
199 aaSessionHistory::LoadURI(const PRUnichar *aURI, PRUint32 aLoadFlags,
200 nsIURI *aReferrer, nsIInputStream *aPostData, nsIInputStream *aHeaders)
202 return mWN->LoadURI(aURI, aLoadFlags, aReferrer, aPostData, aHeaders);
205 NS_IMETHODIMP
206 aaSessionHistory::Reload(PRUint32 aReloadFlags)
208 return mWN->Reload(aReloadFlags);
211 NS_IMETHODIMP
212 aaSessionHistory::Stop(PRUint32 aStopFlags)
214 return mWN->Stop(aStopFlags);
217 NS_IMETHODIMP
218 aaSessionHistory::GetDocument(nsIDOMDocument * *aDocument)
220 return mWN->GetDocument(aDocument);
223 NS_IMETHODIMP
224 aaSessionHistory::GetCurrentURI(nsIURI * *aCurrentURI)
226 return mWN->GetCurrentURI(aCurrentURI);
229 NS_IMETHODIMP
230 aaSessionHistory::GetReferringURI(nsIURI * *aReferringURI)
232 return mWN->GetReferringURI(aReferringURI);
235 NS_IMETHODIMP
236 aaSessionHistory::GetSessionHistory(nsISHistory * *aSessionHistory)
238 return mWN->GetSessionHistory(aSessionHistory);
240 NS_IMETHODIMP
241 aaSessionHistory::SetSessionHistory(nsISHistory * aSessionHistory)
243 return mWN->SetSessionHistory(aSessionHistory);
246 /* nsIInterfaceRequestor */
247 NS_IMETHODIMP
248 aaSessionHistory::GetInterface(const nsIID & uuid, void * *result)
250 nsresult rv;
252 if (uuid.Equals(NS_GET_IID(aaISession))) {
253 rv = NS_OK;
254 if (! mSession) {
255 mSession = do_CreateInstance("@aasii.org/storage/session;1", &rv);
257 NS_IF_ADDREF( (aaISession *) (*result = (void *) mSession) );
258 return rv;
260 return QueryInterface(uuid, result);