Coverage Report

Created: 2018-09-25 14:53

/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