/src/mozilla-central/storage/mozStorageRow.h
Line | Count | Source (jump to first uncovered line) |
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/. */ |
6 | | |
7 | | #ifndef mozStorageRow_h |
8 | | #define mozStorageRow_h |
9 | | |
10 | | #include "mozIStorageRow.h" |
11 | | #include "nsCOMArray.h" |
12 | | #include "nsDataHashtable.h" |
13 | | #include "mozilla/Attributes.h" |
14 | | class nsIVariant; |
15 | | struct sqlite3_stmt; |
16 | | |
17 | | namespace mozilla { |
18 | | namespace storage { |
19 | | |
20 | | class Row final : public mozIStorageRow |
21 | | { |
22 | | public: |
23 | | NS_DECL_THREADSAFE_ISUPPORTS |
24 | | NS_DECL_MOZISTORAGEROW |
25 | | NS_DECL_MOZISTORAGEVALUEARRAY |
26 | | |
27 | 0 | Row() : mNumCols(0) {} |
28 | | |
29 | | /** |
30 | | * Initializes the object with the given statement. Copies the values from |
31 | | * the statement. |
32 | | * |
33 | | * @param aStatement |
34 | | * The sqlite statement to pull results from. |
35 | | */ |
36 | | nsresult initialize(sqlite3_stmt *aStatement); |
37 | | |
38 | | private: |
39 | 0 | ~Row() {} |
40 | | |
41 | | /** |
42 | | * The number of columns in this tuple. |
43 | | */ |
44 | | uint32_t mNumCols; |
45 | | |
46 | | /** |
47 | | * Stores the data in the tuple. |
48 | | */ |
49 | | nsCOMArray<nsIVariant> mData; |
50 | | |
51 | | /** |
52 | | * Maps a given name to a column index. |
53 | | */ |
54 | | nsDataHashtable<nsCStringHashKey, uint32_t> mNameHashtable; |
55 | | }; |
56 | | |
57 | | } // namespace storage |
58 | | } // namespace mozilla |
59 | | |
60 | | #endif // mozStorageRow_h |