Line data Source code
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 mozStorageResultSet_h
8 : #define mozStorageResultSet_h
9 :
10 : #include "mozIStorageResultSet.h"
11 : #include "nsCOMArray.h"
12 : #include "mozilla/Attributes.h"
13 : class mozIStorageRow;
14 :
15 : namespace mozilla {
16 : namespace storage {
17 :
18 : class ResultSet final : public mozIStorageResultSet
19 : {
20 : public:
21 : NS_DECL_THREADSAFE_ISUPPORTS
22 : NS_DECL_MOZISTORAGERESULTSET
23 :
24 : ResultSet();
25 :
26 : /**
27 : * Adds a tuple to this result set.
28 : */
29 : nsresult add(mozIStorageRow *aTuple);
30 :
31 : /**
32 : * @returns the number of rows this result set holds.
33 : */
34 4 : int32_t rows() const { return mData.Count(); }
35 :
36 : private:
37 : ~ResultSet();
38 :
39 : /**
40 : * Stores the current index of the active result set.
41 : */
42 : int32_t mCurrentIndex;
43 :
44 : /**
45 : * Stores the tuples.
46 : */
47 : nsCOMArray<mozIStorageRow> mData;
48 : };
49 :
50 : } // namespace storage
51 : } // namespace mozilla
52 :
53 : #endif // mozStorageResultSet_h
|