Bumping gaia.json for 2 gaia revision(s) a=gaia-bump
[gecko.git] / storage / src / mozStorageAsyncStatementJSHelper.h
blob611469396057ca413f4ec89d78bfea52c815cb72
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 * vim: sw=2 ts=2 et lcs=trail\:.,tab\:>~ :
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 #ifndef mozilla_storage_mozStorageAsyncStatementJSHelper_h_
8 #define mozilla_storage_mozStorageAsyncStatementJSHelper_h_
10 #include "nsIXPCScriptable.h"
11 #include "nsIXPConnect.h"
13 class AsyncStatement;
15 namespace mozilla {
16 namespace storage {
18 /**
19 * A modified version of StatementJSHelper that only exposes the async-specific
20 * 'params' helper. We do not expose 'row' or 'step' as they do not apply to
21 * us.
23 class AsyncStatementJSHelper : public nsIXPCScriptable
25 public:
26 NS_DECL_ISUPPORTS
27 NS_DECL_NSIXPCSCRIPTABLE
29 private:
30 nsresult getParams(AsyncStatement *, JSContext *, JSObject *, JS::Value *);
33 /**
34 * Wrapper used to clean up the references JS helpers hold to the statement.
35 * For cycle-avoidance reasons they do not hold reference-counted references,
36 * so it is important we do this.
38 class AsyncStatementParamsHolder MOZ_FINAL : public nsIXPConnectJSObjectHolder
40 public:
41 NS_DECL_ISUPPORTS
42 NS_DECL_NSIXPCONNECTJSOBJECTHOLDER
44 explicit AsyncStatementParamsHolder(nsIXPConnectJSObjectHolder* aHolder);
46 private:
47 virtual ~AsyncStatementParamsHolder();
48 nsCOMPtr<nsIXPConnectJSObjectHolder> mHolder;
51 } // namespace storage
52 } // namespace mozilla
54 #endif // mozilla_storage_mozStorageAsyncStatementJSHelper_h_